diff --git a/src/Umbraco.Core/Services/MacroService.cs b/src/Umbraco.Core/Services/MacroService.cs
index 616f5dedfd..6ea283fb75 100644
--- a/src/Umbraco.Core/Services/MacroService.cs
+++ b/src/Umbraco.Core/Services/MacroService.cs
@@ -4,7 +4,6 @@ using System.Linq;
using Umbraco.Core.Auditing;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence;
-using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.UnitOfWork;
namespace Umbraco.Core.Services
@@ -15,24 +14,21 @@ namespace Umbraco.Core.Services
internal class MacroService : IMacroService
{
private readonly RepositoryFactory _repositoryFactory;
- private readonly IUnitOfWork _unitOfWork;
- private readonly IMacroRepository _macroRepository;
+ private readonly IUnitOfWorkProvider _uowProvider;
public MacroService(RepositoryFactory repositoryFactory)
: this(new FileUnitOfWorkProvider(), repositoryFactory)
{
}
- public MacroService(IUnitOfWorkProvider provider, RepositoryFactory repositoryFactory)
+ public MacroService(IUnitOfWorkProvider provider, RepositoryFactory repositoryFactory) : this(provider, repositoryFactory, false)
{
- _repositoryFactory = repositoryFactory;
- _unitOfWork = provider.GetUnitOfWork();
- _macroRepository = _repositoryFactory.CreateMacroRepository(_unitOfWork);
}
- public MacroService(IUnitOfWorkProvider provider, bool ensureCachedMacros)
+ public MacroService(IUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, bool ensureCachedMacros)
{
- _unitOfWork = provider.GetUnitOfWork();
+ _uowProvider = provider;
+ _repositoryFactory = repositoryFactory;
if(ensureCachedMacros)
EnsureMacroCache();
@@ -54,8 +50,10 @@ namespace Umbraco.Core.Services
/// An object
public IMacro GetByAlias(string alias)
{
- var repository = _macroRepository;
- return repository.Get(alias);
+ using (var repository = _repositoryFactory.CreateMacroRepository(_uowProvider.GetUnitOfWork()))
+ {
+ return repository.Get(alias);
+ }
}
///
@@ -65,8 +63,10 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public IEnumerable GetAll(params string[] aliases)
{
- var repository = _macroRepository;
- return repository.GetAll(aliases);
+ using (var repository = _repositoryFactory.CreateMacroRepository(_uowProvider.GetUnitOfWork()))
+ {
+ return repository.GetAll(aliases);
+ }
}
///
@@ -82,12 +82,15 @@ namespace Umbraco.Core.Services
if (!e.Cancel)
{
- var repository = _macroRepository;
- repository.Delete(macro);
- _unitOfWork.Commit();
+ var uow = _uowProvider.GetUnitOfWork();
+ using (var repository = _repositoryFactory.CreateMacroRepository(uow))
+ {
+ repository.Delete(macro);
+ uow.Commit();
- if (Deleted != null)
- Deleted(macro, e);
+ if (Deleted != null)
+ Deleted(macro, e);
+ }
Audit.Add(AuditTypes.Delete, "Delete Macro performed by user", userId > -1 ? userId : 0, -1);
}
@@ -106,11 +109,15 @@ namespace Umbraco.Core.Services
if (!e.Cancel)
{
- _macroRepository.AddOrUpdate(macro);
- _unitOfWork.Commit();
+ var uow = _uowProvider.GetUnitOfWork();
+ using (var repository = _repositoryFactory.CreateMacroRepository(uow))
+ {
+ repository.AddOrUpdate(macro);
+ uow.Commit();
- if (Saved != null)
- Saved(macro, e);
+ if (Saved != null)
+ Saved(macro, e);
+ }
Audit.Add(AuditTypes.Save, "Save Macro performed by user", userId > -1 ? userId : 0, -1);
}
diff --git a/src/Umbraco.Core/Services/UserService.cs b/src/Umbraco.Core/Services/UserService.cs
index 511a773b19..2bdd8136f5 100644
--- a/src/Umbraco.Core/Services/UserService.cs
+++ b/src/Umbraco.Core/Services/UserService.cs
@@ -2,7 +2,6 @@ using System;
using System.Web;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Persistence;
-using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.UnitOfWork;
namespace Umbraco.Core.Services
@@ -13,14 +12,12 @@ namespace Umbraco.Core.Services
internal class UserService : IUserService
{
private readonly RepositoryFactory _repositoryFactory;
- private readonly IDatabaseUnitOfWork _unitOfWork;
- private readonly IUserRepository _userRepository;
+ private readonly IDatabaseUnitOfWorkProvider _uowProvider;
- public UserService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory)
+ public UserService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory)
{
_repositoryFactory = repositoryFactory;
- _unitOfWork = provider.GetUnitOfWork();
- _userRepository = _repositoryFactory.CreateUserRepository(_unitOfWork);
+ _uowProvider = provider;
}
#region Implementation of IUserService
@@ -50,8 +47,9 @@ namespace Umbraco.Core.Services
if(HttpRuntime.Cache[cacheKey] == null)
{
+ var uow = _uowProvider.GetUnitOfWork();
userId =
- _unitOfWork.Database.ExecuteScalar(
+ uow.Database.ExecuteScalar(
"select userID from umbracoUserLogins where contextID = @ContextId",
new {ContextId = new Guid(contextId)});
@@ -92,8 +90,10 @@ namespace Umbraco.Core.Services
///
public IProfile GetProfileById(int id)
{
- var repository = _userRepository;
- return repository.GetProfileById(id);
+ using (var repository = _repositoryFactory.CreateUserRepository(_uowProvider.GetUnitOfWork()))
+ {
+ return repository.GetProfileById(id);
+ }
}
#endregion