From 02136d306005f0930db578cb14d6f11a45fc069c Mon Sep 17 00:00:00 2001 From: Stephan Date: Tue, 16 May 2017 08:09:11 +0200 Subject: [PATCH] U4-9908 - fix scope-related issues --- .../Services/ContentTypeServiceBase.cs | 2 +- .../Services/ExternalLoginService.cs | 27 +++++++++---------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Core/Services/ContentTypeServiceBase.cs b/src/Umbraco.Core/Services/ContentTypeServiceBase.cs index c2dfd687dd..ef089a3c22 100644 --- a/src/Umbraco.Core/Services/ContentTypeServiceBase.cs +++ b/src/Umbraco.Core/Services/ContentTypeServiceBase.cs @@ -83,7 +83,7 @@ namespace Umbraco.Core.Services /// public bool HasContainerInPath(string contentPath) { - using (var uow = UowProvider.GetUnitOfWork()) + using (var uow = UowProvider.GetUnitOfWork(readOnly: true)) { // can use same repo for both content and media var repository = RepositoryFactory.CreateContentTypeRepository(uow); diff --git a/src/Umbraco.Core/Services/ExternalLoginService.cs b/src/Umbraco.Core/Services/ExternalLoginService.cs index 71ad0fcce9..2d2baeeb07 100644 --- a/src/Umbraco.Core/Services/ExternalLoginService.cs +++ b/src/Umbraco.Core/Services/ExternalLoginService.cs @@ -14,8 +14,7 @@ namespace Umbraco.Core.Services { public ExternalLoginService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger, IEventMessagesFactory eventMessagesFactory) : base(provider, repositoryFactory, logger, eventMessagesFactory) - { - } + { } /// /// Returns all user logins assigned @@ -23,30 +22,32 @@ namespace Umbraco.Core.Services /// /// public IEnumerable GetAll(int userId) - { - using (var uow = UowProvider.GetUnitOfWork()) + { + using (var uow = UowProvider.GetUnitOfWork(readOnly: true)) { + // ToList is important here, must evaluate within uow! var repo = RepositoryFactory.CreateExternalLoginRepository(uow); - var ret = repo.GetByQuery(new Query().Where(x => x.UserId == userId)); - uow.Commit(); - return ret; + return repo.GetByQuery(new Query() + .Where(x => x.UserId == userId)) + .ToList(); } } /// - /// Returns all logins matching the login info - generally there should only be one but in some cases + /// Returns all logins matching the login info - generally there should only be one but in some cases /// there might be more than one depending on if an adminstrator has been editing/removing members /// /// /// public IEnumerable Find(UserLoginInfo login) { - using (var uow = UowProvider.GetUnitOfWork()) + using (var uow = UowProvider.GetUnitOfWork(readOnly: true)) { + // ToList is important here, must evaluate within uow! var repo = RepositoryFactory.CreateExternalLoginRepository(uow); - var ret = repo.GetByQuery(new Query().Where(x => x.ProviderKey == login.ProviderKey && x.LoginProvider == login.LoginProvider)); - uow.Commit(); - return ret; + return repo.GetByQuery(new Query() + .Where(x => x.ProviderKey == login.ProviderKey && x.LoginProvider == login.LoginProvider)) + .ToList(); } } @@ -78,7 +79,5 @@ namespace Umbraco.Core.Services uow.Commit(); } } - - } } \ No newline at end of file