Refactoring FileService to use the new and clean uow/repo approach.
This commit is contained in:
@@ -14,11 +14,8 @@ namespace Umbraco.Core.Services
|
||||
public class FileService : IFileService
|
||||
{
|
||||
private readonly RepositoryFactory _repositoryFactory;
|
||||
private readonly IUnitOfWork _fileUnitOfWork;
|
||||
private readonly IDatabaseUnitOfWork _dataUnitOfWork;
|
||||
private readonly IStylesheetRepository _stylesheetRepository;
|
||||
private readonly IScriptRepository _scriptRepository;
|
||||
private readonly ITemplateRepository _templateRepository;
|
||||
private readonly IUnitOfWorkProvider _fileUowProvider;
|
||||
private readonly IDatabaseUnitOfWorkProvider _dataUowProvider;
|
||||
|
||||
public FileService(RepositoryFactory repositoryFactory)
|
||||
: this(new FileUnitOfWorkProvider(), new PetaPocoUnitOfWorkProvider(), repositoryFactory)
|
||||
@@ -28,11 +25,8 @@ namespace Umbraco.Core.Services
|
||||
public FileService(IUnitOfWorkProvider fileProvider, IDatabaseUnitOfWorkProvider dataProvider, RepositoryFactory repositoryFactory)
|
||||
{
|
||||
_repositoryFactory = repositoryFactory;
|
||||
_fileUnitOfWork = fileProvider.GetUnitOfWork();
|
||||
_dataUnitOfWork = dataProvider.GetUnitOfWork();
|
||||
_templateRepository = _repositoryFactory.CreateTemplateRepository(_dataUnitOfWork);
|
||||
_stylesheetRepository = _repositoryFactory.CreateStylesheetRepository(_fileUnitOfWork);
|
||||
_scriptRepository = _repositoryFactory.CreateScriptRepository(_fileUnitOfWork);
|
||||
_fileUowProvider = fileProvider;
|
||||
_dataUowProvider = dataProvider;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -41,8 +35,10 @@ namespace Umbraco.Core.Services
|
||||
/// <returns>An enumerable list of <see cref="Stylesheet"/> objects</returns>
|
||||
public IEnumerable<Stylesheet> GetStylesheets(params string[] names)
|
||||
{
|
||||
var repository = _stylesheetRepository;
|
||||
return repository.GetAll(names);
|
||||
using (var repository = _repositoryFactory.CreateStylesheetRepository(_fileUowProvider.GetUnitOfWork()))
|
||||
{
|
||||
return repository.GetAll(names);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -52,8 +48,10 @@ namespace Umbraco.Core.Services
|
||||
/// <returns>A <see cref="Stylesheet"/> object</returns>
|
||||
public Stylesheet GetStylesheetByName(string name)
|
||||
{
|
||||
var repository = _stylesheetRepository;
|
||||
return repository.Get(name);
|
||||
using (var repository = _repositoryFactory.CreateStylesheetRepository(_fileUowProvider.GetUnitOfWork()))
|
||||
{
|
||||
return repository.Get(name);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -69,11 +67,15 @@ namespace Umbraco.Core.Services
|
||||
|
||||
if (!e.Cancel)
|
||||
{
|
||||
_stylesheetRepository.AddOrUpdate(stylesheet);
|
||||
_fileUnitOfWork.Commit();
|
||||
var uow = _fileUowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateStylesheetRepository(uow))
|
||||
{
|
||||
repository.AddOrUpdate(stylesheet);
|
||||
uow.Commit();
|
||||
|
||||
if (Saved != null)
|
||||
Saved(stylesheet, e);
|
||||
if (Saved != null)
|
||||
Saved(stylesheet, e);
|
||||
}
|
||||
|
||||
Audit.Add(AuditTypes.Save, string.Format("Save Stylesheet performed by user"), userId == -1 ? 0 : userId, -1);
|
||||
}
|
||||
@@ -86,21 +88,25 @@ namespace Umbraco.Core.Services
|
||||
/// <param name="userId"></param>
|
||||
public void DeleteStylesheet(string name, int userId = -1)
|
||||
{
|
||||
var stylesheet = _stylesheetRepository.Get(name);
|
||||
|
||||
var e = new DeleteEventArgs();
|
||||
if (Deleting != null)
|
||||
Deleting(stylesheet, e);
|
||||
|
||||
if (!e.Cancel)
|
||||
var uow = _fileUowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateStylesheetRepository(uow))
|
||||
{
|
||||
_stylesheetRepository.Delete(stylesheet);
|
||||
_fileUnitOfWork.Commit();
|
||||
var stylesheet = repository.Get(name);
|
||||
|
||||
if (Deleted != null)
|
||||
Deleted(stylesheet, e);
|
||||
var e = new DeleteEventArgs();
|
||||
if (Deleting != null)
|
||||
Deleting(stylesheet, e);
|
||||
|
||||
Audit.Add(AuditTypes.Delete, string.Format("Delete Stylesheet performed by user"), userId == -1 ? 0 : userId, -1);
|
||||
if (!e.Cancel)
|
||||
{
|
||||
repository.Delete(stylesheet);
|
||||
uow.Commit();
|
||||
|
||||
if (Deleted != null)
|
||||
Deleted(stylesheet, e);
|
||||
|
||||
Audit.Add(AuditTypes.Delete, string.Format("Delete Stylesheet performed by user"), userId == -1 ? 0 : userId, -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,8 +126,10 @@ namespace Umbraco.Core.Services
|
||||
/// <returns>An enumerable list of <see cref="Script"/> objects</returns>
|
||||
public IEnumerable<Script> GetScripts(params string[] names)
|
||||
{
|
||||
var repository = _scriptRepository;
|
||||
return repository.GetAll(names);
|
||||
using (var repository = _repositoryFactory.CreateScriptRepository(_fileUowProvider.GetUnitOfWork()))
|
||||
{
|
||||
return repository.GetAll(names);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -131,8 +139,10 @@ namespace Umbraco.Core.Services
|
||||
/// <returns>A <see cref="Script"/> object</returns>
|
||||
public Script GetScriptByName(string name)
|
||||
{
|
||||
var repository = _scriptRepository;
|
||||
return repository.Get(name);
|
||||
using (var repository = _repositoryFactory.CreateScriptRepository(_fileUowProvider.GetUnitOfWork()))
|
||||
{
|
||||
return repository.Get(name);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -148,11 +158,15 @@ namespace Umbraco.Core.Services
|
||||
|
||||
if (!e.Cancel)
|
||||
{
|
||||
_scriptRepository.AddOrUpdate(script);
|
||||
_fileUnitOfWork.Commit();
|
||||
var uow = _fileUowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateScriptRepository(uow))
|
||||
{
|
||||
repository.AddOrUpdate(script);
|
||||
uow.Commit();
|
||||
|
||||
if (Saved != null)
|
||||
Saved(script, e);
|
||||
if (Saved != null)
|
||||
Saved(script, e);
|
||||
}
|
||||
|
||||
Audit.Add(AuditTypes.Save, string.Format("Save Script performed by user"), userId == -1 ? 0 : userId, -1);
|
||||
}
|
||||
@@ -165,21 +179,26 @@ namespace Umbraco.Core.Services
|
||||
/// <param name="userId"></param>
|
||||
public void DeleteScript(string name, int userId = -1)
|
||||
{
|
||||
var script = _scriptRepository.Get(name);
|
||||
|
||||
var e = new DeleteEventArgs();
|
||||
if (Deleting != null)
|
||||
Deleting(script, e);
|
||||
|
||||
if (!e.Cancel)
|
||||
var uow = _fileUowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateScriptRepository(uow))
|
||||
{
|
||||
_scriptRepository.Delete(script);
|
||||
_fileUnitOfWork.Commit();
|
||||
var script = repository.Get(name);
|
||||
|
||||
if (Deleted != null)
|
||||
Deleted(script, e);
|
||||
var e = new DeleteEventArgs();
|
||||
if (Deleting != null)
|
||||
Deleting(script, e);
|
||||
|
||||
Audit.Add(AuditTypes.Delete, string.Format("Delete Script performed by user"), userId == -1 ? 0 : userId, -1);
|
||||
if (!e.Cancel)
|
||||
{
|
||||
repository.Delete(script);
|
||||
uow.Commit();
|
||||
|
||||
if (Deleted != null)
|
||||
Deleted(script, e);
|
||||
|
||||
Audit.Add(AuditTypes.Delete, string.Format("Delete Script performed by user"),
|
||||
userId == -1 ? 0 : userId, -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,8 +218,10 @@ namespace Umbraco.Core.Services
|
||||
/// <returns>An enumerable list of <see cref="ITemplate"/> objects</returns>
|
||||
public IEnumerable<ITemplate> GetTemplates(params string[] aliases)
|
||||
{
|
||||
var repository = _templateRepository;
|
||||
return repository.GetAll(aliases);
|
||||
using (var repository = _repositoryFactory.CreateTemplateRepository(_dataUowProvider.GetUnitOfWork()))
|
||||
{
|
||||
return repository.GetAll(aliases);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -210,8 +231,10 @@ namespace Umbraco.Core.Services
|
||||
/// <returns>A <see cref="Template"/> object</returns>
|
||||
public ITemplate GetTemplateByAlias(string alias)
|
||||
{
|
||||
var repository = _templateRepository;
|
||||
return repository.Get(alias);
|
||||
using (var repository = _repositoryFactory.CreateTemplateRepository(_dataUowProvider.GetUnitOfWork()))
|
||||
{
|
||||
return repository.Get(alias);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -227,11 +250,15 @@ namespace Umbraco.Core.Services
|
||||
|
||||
if (!e.Cancel)
|
||||
{
|
||||
_templateRepository.AddOrUpdate(template);
|
||||
_dataUnitOfWork.Commit();
|
||||
var uow = _dataUowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateTemplateRepository(uow))
|
||||
{
|
||||
repository.AddOrUpdate(template);
|
||||
uow.Commit();
|
||||
|
||||
if (Saved != null)
|
||||
Saved(template, e);
|
||||
if (Saved != null)
|
||||
Saved(template, e);
|
||||
}
|
||||
|
||||
Audit.Add(AuditTypes.Save, string.Format("Save Template performed by user"), userId == -1 ? 0 : userId, template.Id);
|
||||
}
|
||||
@@ -244,21 +271,26 @@ namespace Umbraco.Core.Services
|
||||
/// <param name="userId"></param>
|
||||
public void DeleteTemplate(string alias, int userId = -1)
|
||||
{
|
||||
var template = _templateRepository.Get(alias);
|
||||
|
||||
var e = new DeleteEventArgs();
|
||||
if (Deleting != null)
|
||||
Deleting(template, e);
|
||||
|
||||
if (!e.Cancel)
|
||||
var uow = _dataUowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateTemplateRepository(uow))
|
||||
{
|
||||
_templateRepository.Delete(template);
|
||||
_dataUnitOfWork.Commit();
|
||||
var template = repository.Get(alias);
|
||||
|
||||
if (Deleted != null)
|
||||
Deleted(template, e);
|
||||
var e = new DeleteEventArgs();
|
||||
if (Deleting != null)
|
||||
Deleting(template, e);
|
||||
|
||||
Audit.Add(AuditTypes.Delete, string.Format("Delete Template performed by user"), userId == -1 ? 0 : userId, template.Id);
|
||||
if (!e.Cancel)
|
||||
{
|
||||
repository.Delete(template);
|
||||
uow.Commit();
|
||||
|
||||
if (Deleted != null)
|
||||
Deleted(template, e);
|
||||
|
||||
Audit.Add(AuditTypes.Delete, string.Format("Delete Template performed by user"),
|
||||
userId == -1 ? 0 : userId, template.Id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user