diff --git a/src/Umbraco.Core/Persistence/RepositoryFactory.cs b/src/Umbraco.Core/Persistence/RepositoryFactory.cs index 07028663e3..65637f74c7 100644 --- a/src/Umbraco.Core/Persistence/RepositoryFactory.cs +++ b/src/Umbraco.Core/Persistence/RepositoryFactory.cs @@ -1,5 +1,6 @@ using Umbraco.Core.Configuration; using System; +using System.ComponentModel; using Umbraco.Core.Cache; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.IO; @@ -225,6 +226,13 @@ namespace Umbraco.Core.Persistence return new PartialViewMacroRepository(uow, FileSystemProviderManager.Current.MacroPartialsFileSystem); } + public virtual IStylesheetRepository CreateStylesheetRepository(IUnitOfWork uow) + { + return new StylesheetRepository(uow, FileSystemProviderManager.Current.StylesheetsFileSystem); + } + + [Obsolete("Do not use this method, use the method with only the single unit of work parameter")] + [EditorBrowsable(EditorBrowsableState.Never)] public virtual IStylesheetRepository CreateStylesheetRepository(IUnitOfWork uow, IDatabaseUnitOfWork db) { return new StylesheetRepository(uow, FileSystemProviderManager.Current.StylesheetsFileSystem); @@ -348,9 +356,6 @@ namespace Umbraco.Core.Persistence _sqlSyntax); } - internal IStylesheetRepository CreateStylesheetRepository(IScopeUnitOfWork uow) - { - return new StylesheetRepository(uow, FileSystemProviderManager.Current.StylesheetsFileSystem); - } + } } diff --git a/src/Umbraco.Core/Services/FileService.cs b/src/Umbraco.Core/Services/FileService.cs index 8361541ff8..74f72fbb8c 100644 --- a/src/Umbraco.Core/Services/FileService.cs +++ b/src/Umbraco.Core/Services/FileService.cs @@ -45,7 +45,7 @@ namespace Umbraco.Core.Services /// An enumerable list of objects public IEnumerable GetStylesheets(params string[] names) { - using (var repository = RepositoryFactory.CreateStylesheetRepository(_fileUowProvider.GetUnitOfWork(), UowProvider.GetUnitOfWork())) + using (var repository = RepositoryFactory.CreateStylesheetRepository(_fileUowProvider.GetReadOnlyUnitOfWork())) { return repository.GetAll(names); } @@ -58,7 +58,7 @@ namespace Umbraco.Core.Services /// A object public Stylesheet GetStylesheetByName(string name) { - using (var repository = RepositoryFactory.CreateStylesheetRepository(_fileUowProvider.GetUnitOfWork(), UowProvider.GetUnitOfWork())) + using (var repository = RepositoryFactory.CreateStylesheetRepository(_fileUowProvider.GetReadOnlyUnitOfWork())) { return repository.Get(name); } @@ -71,21 +71,22 @@ namespace Umbraco.Core.Services /// public void SaveStylesheet(Stylesheet stylesheet, int userId = 0) { - using (var uow = _fileUowProvider.GetUnitOfWork()) + var uow = _fileUowProvider.GetUnitOfWork(); + using (var repository = RepositoryFactory.CreateStylesheetRepository(uow)) { if (SavingStylesheet.IsRaisedEventCancelled(new SaveEventArgs(stylesheet), this, uow.EventManager)) - return; - - using (var repository = RepositoryFactory.CreateStylesheetRepository(uow, UowProvider.GetUnitOfWork())) { - repository.AddOrUpdate(stylesheet); uow.Commit(); - - SavedStylesheet.RaiseEvent(new SaveEventArgs(stylesheet, false), this); + return; } - Audit(AuditType.Save, string.Format("Save Stylesheet performed by user"), userId, -1); + repository.AddOrUpdate(stylesheet); + uow.Commit(); + + SavedStylesheet.RaiseEvent(new SaveEventArgs(stylesheet, false), this, uow.EventManager); } + + Audit(AuditType.Save, string.Format("Save Stylesheet performed by user"), userId, -1); } /// @@ -96,21 +97,28 @@ namespace Umbraco.Core.Services public void DeleteStylesheet(string path, int userId = 0) { var uow = _fileUowProvider.GetUnitOfWork(); - using (var repository = RepositoryFactory.CreateStylesheetRepository(uow, UowProvider.GetUnitOfWork())) + using (var repository = RepositoryFactory.CreateStylesheetRepository(uow)) { var stylesheet = repository.Get(path); - if (stylesheet == null) return; + if (stylesheet == null) + { + uow.Commit(); + return; + } if (DeletingStylesheet.IsRaisedEventCancelled(new DeleteEventArgs(stylesheet), this, uow.EventManager)) + { + uow.Commit(); return; + } repository.Delete(stylesheet); uow.Commit(); - DeletedStylesheet.RaiseEvent(new DeleteEventArgs(stylesheet, false), this); - - Audit(AuditType.Delete, string.Format("Delete Stylesheet performed by user"), userId, -1); + DeletedStylesheet.RaiseEvent(new DeleteEventArgs(stylesheet, false), this, uow.EventManager); } + + Audit(AuditType.Delete, string.Format("Delete Stylesheet performed by user"), userId, -1); } /// @@ -122,7 +130,7 @@ namespace Umbraco.Core.Services { var uow = _fileUowProvider.GetUnitOfWork(); - using (var repository = RepositoryFactory.CreateStylesheetRepository(uow, UowProvider.GetUnitOfWork())) + using (var repository = RepositoryFactory.CreateStylesheetRepository(uow)) { return repository.ValidateStylesheet(stylesheet); } @@ -137,7 +145,7 @@ namespace Umbraco.Core.Services /// An enumerable list of objects public IEnumerable