From 7ca5c48ae794ef9650c225f35c285399f0a15ce0 Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 23 Jan 2017 23:30:47 +1100 Subject: [PATCH] Fixes up membergroup service with correct even emitting and no nested uow --- .../Services/MemberGroupService.cs | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Core/Services/MemberGroupService.cs b/src/Umbraco.Core/Services/MemberGroupService.cs index 72cd59d390..d97bf37b9f 100644 --- a/src/Umbraco.Core/Services/MemberGroupService.cs +++ b/src/Umbraco.Core/Services/MemberGroupService.cs @@ -25,7 +25,7 @@ namespace Umbraco.Core.Services #region Proxied event handlers void MemberGroupRepository_SavingMemberGroup(IMemberGroupRepository sender, SaveEventArgs e) { - if (Saving.IsRaisedEventCancelled(new SaveEventArgs(e.SavedEntities), this)) + if (Saving.IsRaisedEventCancelled(new SaveEventArgs(e.SavedEntities), this, UowProvider)) { e.Cancel = true; } @@ -33,13 +33,13 @@ namespace Umbraco.Core.Services void MemberGroupRepository_SavedMemberGroup(IMemberGroupRepository sender, SaveEventArgs e) { - Saved.RaiseEvent(new SaveEventArgs(e.SavedEntities, false), this); + Saved.RaiseEvent(new SaveEventArgs(e.SavedEntities, false), this, UowProvider); } #endregion public IEnumerable GetAll() { - using (var repository = RepositoryFactory.CreateMemberGroupRepository(UowProvider.GetUnitOfWork())) + using (var repository = RepositoryFactory.CreateMemberGroupRepository(UowProvider.GetReadOnlyUnitOfWork())) { return repository.GetAll(); } @@ -47,7 +47,7 @@ namespace Umbraco.Core.Services public IMemberGroup GetById(int id) { - using (var repository = RepositoryFactory.CreateMemberGroupRepository(UowProvider.GetUnitOfWork())) + using (var repository = RepositoryFactory.CreateMemberGroupRepository(UowProvider.GetReadOnlyUnitOfWork())) { return repository.Get(id); } @@ -55,7 +55,7 @@ namespace Umbraco.Core.Services public IMemberGroup GetByName(string name) { - using (var repository = RepositoryFactory.CreateMemberGroupRepository(UowProvider.GetUnitOfWork())) + using (var repository = RepositoryFactory.CreateMemberGroupRepository(UowProvider.GetReadOnlyUnitOfWork())) { return repository.GetByName(name); } @@ -63,36 +63,37 @@ namespace Umbraco.Core.Services public void Save(IMemberGroup memberGroup, bool raiseEvents = true) { - using (var uow = UowProvider.GetUnitOfWork()) + var uow = UowProvider.GetUnitOfWork(); using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow)) { if (raiseEvents) { if (Saving.IsRaisedEventCancelled(new SaveEventArgs(memberGroup), this, uow.EventManager)) { + uow.Commit(); return; } } repository.AddOrUpdate(memberGroup); uow.Commit(); + if (raiseEvents) + Saved.RaiseEvent(new SaveEventArgs(memberGroup, false), this, uow.EventManager); } - if (raiseEvents) - Saved.RaiseEvent(new SaveEventArgs(memberGroup, false), this); + } public void Delete(IMemberGroup memberGroup) { - using (var uow = UowProvider.GetUnitOfWork()) + var uow = UowProvider.GetUnitOfWork(); using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow)) { if (Deleting.IsRaisedEventCancelled(new DeleteEventArgs(memberGroup), this, uow.EventManager)) return; repository.Delete(memberGroup); uow.Commit(); + Deleted.RaiseEvent(new DeleteEventArgs(memberGroup, false), this, uow.EventManager); } - - Deleted.RaiseEvent(new DeleteEventArgs(memberGroup, false), this); } ///