diff --git a/src/Umbraco.Core/Services/MemberGroupService.cs b/src/Umbraco.Core/Services/MemberGroupService.cs index 1e99caa7f4..78d8581577 100644 --- a/src/Umbraco.Core/Services/MemberGroupService.cs +++ b/src/Umbraco.Core/Services/MemberGroupService.cs @@ -71,7 +71,8 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - if (raiseEvents && uow.Events.DispatchCancelable(Saving, this, new SaveEventArgs(memberGroup))) + var saveEventArgs = new SaveEventArgs(memberGroup); + if (raiseEvents && uow.Events.DispatchCancelable(Saving, this, saveEventArgs)) { uow.Commit(); return; @@ -81,17 +82,19 @@ namespace Umbraco.Core.Services repository.AddOrUpdate(memberGroup); uow.Commit(); if (raiseEvents) - uow.Events.Dispatch(Saved, this, new SaveEventArgs(memberGroup, false)); + { + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(Saved, this, saveEventArgs); + } } - - } public void Delete(IMemberGroup memberGroup) { using (var uow = UowProvider.GetUnitOfWork()) { - if (uow.Events.DispatchCancelable(Deleting, this, new DeleteEventArgs(memberGroup))) + var deleteEventArgs = new DeleteEventArgs(memberGroup); + if (uow.Events.DispatchCancelable(Deleting, this, deleteEventArgs)) { uow.Commit(); return; @@ -99,7 +102,8 @@ namespace Umbraco.Core.Services var repository = RepositoryFactory.CreateMemberGroupRepository(uow); repository.Delete(memberGroup); uow.Commit(); - uow.Events.Dispatch(Deleted, this, new DeleteEventArgs(memberGroup, false)); + deleteEventArgs.CanCancel = false; + uow.Events.Dispatch(Deleted, this, deleteEventArgs); } } diff --git a/src/Umbraco.Core/Services/MemberService.cs b/src/Umbraco.Core/Services/MemberService.cs index 26e74f66cc..c59ca55c64 100644 --- a/src/Umbraco.Core/Services/MemberService.cs +++ b/src/Umbraco.Core/Services/MemberService.cs @@ -234,7 +234,8 @@ namespace Umbraco.Core.Services var query = Query.Builder.Where(x => x.ContentTypeId == memberTypeId); var members = repository.GetByQuery(query).ToArray(); - if (uow.Events.DispatchCancelable(Deleting, this, new DeleteEventArgs(members))) + var deleteEventArgs = new DeleteEventArgs(members); + if (uow.Events.DispatchCancelable(Deleting, this, deleteEventArgs)) { uow.Commit(); return; @@ -862,7 +863,8 @@ namespace Umbraco.Core.Services using (var uow = UowProvider.GetUnitOfWork()) { - if (uow.Events.DispatchCancelable(Saving, this, new SaveEventArgs(member))) + var saveEventArgs = new SaveEventArgs(member); + if (uow.Events.DispatchCancelable(Saving, this, saveEventArgs)) { uow.Commit(); member.WasCancelled = true; @@ -881,7 +883,8 @@ namespace Umbraco.Core.Services uow.Commit(); - uow.Events.Dispatch(Saved, this, new SaveEventArgs(member, false)); + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(Saved, this, saveEventArgs); uow.Events.Dispatch(Created, this, new NewEventArgs(member, false, memberType.Alias, -1)); } @@ -958,7 +961,8 @@ namespace Umbraco.Core.Services private void Delete(IScopeUnitOfWork uow, IMember member) { - if (uow.Events.DispatchCancelable(Deleting, this, new DeleteEventArgs(member))) + var deleteEventArgs = new DeleteEventArgs(member); + if (uow.Events.DispatchCancelable(Deleting, this, deleteEventArgs)) { uow.Commit(); return; @@ -968,8 +972,8 @@ namespace Umbraco.Core.Services repository.Delete(member); uow.Commit(); - var args = new DeleteEventArgs(member, false); - uow.Events.Dispatch(Deleted, this, args); + deleteEventArgs.CanCancel = false; + uow.Events.Dispatch(Deleted, this, deleteEventArgs); } /// @@ -982,9 +986,10 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { + var saveEventArgs = new SaveEventArgs(entity); if (raiseEvents) { - if (uow.Events.DispatchCancelable(Saving, this, new SaveEventArgs(entity))) + if (uow.Events.DispatchCancelable(Saving, this, saveEventArgs)) { uow.Commit(); return; @@ -1008,7 +1013,10 @@ namespace Umbraco.Core.Services uow.Commit(); if (raiseEvents) - uow.Events.Dispatch(Saved, this, new SaveEventArgs(entity, false)); + { + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(Saved, this, saveEventArgs); + } } } @@ -1027,7 +1035,8 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - if (raiseEvents && uow.Events.DispatchCancelable(Saving, this, new SaveEventArgs(asArray))) + var saveEventArgs = new SaveEventArgs(asArray); + if (raiseEvents && uow.Events.DispatchCancelable(Saving, this, saveEventArgs)) { uow.Commit(); return; @@ -1049,7 +1058,10 @@ namespace Umbraco.Core.Services uow.Commit(); if (raiseEvents) - uow.Events.Dispatch(Saved, this, new SaveEventArgs(asArray, false)); + { + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(Saved, this, saveEventArgs); + } } diff --git a/src/Umbraco.Core/Services/MemberTypeService.cs b/src/Umbraco.Core/Services/MemberTypeService.cs index 9ba34df10a..4784479338 100644 --- a/src/Umbraco.Core/Services/MemberTypeService.cs +++ b/src/Umbraco.Core/Services/MemberTypeService.cs @@ -80,7 +80,8 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - if (uow.Events.DispatchCancelable(Saving, this, new SaveEventArgs(memberType))) + var saveEventArgs = new SaveEventArgs(memberType); + if (uow.Events.DispatchCancelable(Saving, this, saveEventArgs)) { uow.Commit(); return; @@ -101,7 +102,8 @@ namespace Umbraco.Core.Services UpdateContentXmlStructure(memberType); uow.Commit(); // actually commit uow - uow.Events.Dispatch(Saved, this, new SaveEventArgs(memberType, false)); + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(Saved, this, saveEventArgs); } } } @@ -114,7 +116,8 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - if (uow.Events.DispatchCancelable(Saving, this, new SaveEventArgs(asArray))) + var saveEventArgs = new SaveEventArgs(asArray); + if (uow.Events.DispatchCancelable(Saving, this, saveEventArgs)) { uow.Commit(); return; @@ -131,8 +134,8 @@ namespace Umbraco.Core.Services UpdateContentXmlStructure(asArray.Cast().ToArray()); uow.Commit(); // actually commit uow - - uow.Events.Dispatch(Saved, this, new SaveEventArgs(asArray, false)); + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(Saved, this, saveEventArgs); } } @@ -142,10 +145,11 @@ namespace Umbraco.Core.Services { using (new WriteLock(Locker)) { + var deleteEventArgs = new DeleteEventArgs(memberType); using (var scope = UowProvider.ScopeProvider.CreateScope()) { - scope.Complete(); // always - if (scope.Events.DispatchCancelable(Deleting, this, new DeleteEventArgs(memberType))) + scope.Complete(); // always + if (scope.Events.DispatchCancelable(Deleting, this, deleteEventArgs)) return; } @@ -157,7 +161,8 @@ namespace Umbraco.Core.Services repository.Delete(memberType); uow.Commit(); - uow.Events.Dispatch(Deleted, this, new DeleteEventArgs(memberType, false)); + deleteEventArgs.CanCancel = false; + uow.Events.Dispatch(Deleted, this, deleteEventArgs); } } } @@ -168,10 +173,11 @@ namespace Umbraco.Core.Services using (new WriteLock(Locker)) { + var deleteEventArgs = new DeleteEventArgs(asArray); using (var scope = UowProvider.ScopeProvider.CreateScope()) { - scope.Complete(); // always - if (scope.Events.DispatchCancelable(Deleting, this, new DeleteEventArgs(asArray))) + scope.Complete(); // always + if (scope.Events.DispatchCancelable(Deleting, this, deleteEventArgs)) return; } @@ -189,8 +195,8 @@ namespace Umbraco.Core.Services } uow.Commit(); - - uow.Events.Dispatch(Deleted, this, new DeleteEventArgs(asArray, false)); + deleteEventArgs.CanCancel = false; + uow.Events.Dispatch(Deleted, this, deleteEventArgs); } } } diff --git a/src/Umbraco.Core/Services/PublicAccessService.cs b/src/Umbraco.Core/Services/PublicAccessService.cs index 660642416b..dea0709ac9 100644 --- a/src/Umbraco.Core/Services/PublicAccessService.cs +++ b/src/Umbraco.Core/Services/PublicAccessService.cs @@ -148,7 +148,8 @@ namespace Umbraco.Core.Services return Attempt>.Succeed(new OperationStatus(entry, OperationStatusType.Success, evtMsgs)); } - if (uow.Events.DispatchCancelable(Saving, this, new SaveEventArgs(entry, evtMsgs))) + var saveEventArgs = new SaveEventArgs(entry, evtMsgs); + if (uow.Events.DispatchCancelable(Saving, this, saveEventArgs)) { uow.Commit(); return Attempt>.Fail( @@ -158,8 +159,8 @@ namespace Umbraco.Core.Services repo.AddOrUpdate(entry); uow.Commit(); - - uow.Events.Dispatch(Saved, this, new SaveEventArgs(entry, false, evtMsgs)); + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(Saved, this, saveEventArgs); return Attempt>.Succeed( new OperationStatus(entry, OperationStatusType.Success, evtMsgs)); } @@ -193,7 +194,8 @@ namespace Umbraco.Core.Services entry.RemoveRule(existingRule); - if (uow.Events.DispatchCancelable(Saving, this, new SaveEventArgs(entry, evtMsgs))) + var saveEventArgs = new SaveEventArgs(entry, evtMsgs); + if (uow.Events.DispatchCancelable(Saving, this, saveEventArgs)) { uow.Commit(); return OperationStatus.Cancelled(evtMsgs); @@ -202,8 +204,8 @@ namespace Umbraco.Core.Services repo.AddOrUpdate(entry); uow.Commit(); - - uow.Events.Dispatch(Saved, this, new SaveEventArgs(entry, false, evtMsgs)); + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(Saved, this, saveEventArgs); return OperationStatus.Success(evtMsgs); } @@ -219,7 +221,8 @@ namespace Umbraco.Core.Services using (var uow = UowProvider.GetUnitOfWork()) { - if (uow.Events.DispatchCancelable(Saving, this, new SaveEventArgs(entry, evtMsgs))) + var saveEventArgs = new SaveEventArgs(entry, evtMsgs); + if (uow.Events.DispatchCancelable(Saving, this, saveEventArgs)) { uow.Commit(); return OperationStatus.Cancelled(evtMsgs); @@ -228,7 +231,8 @@ namespace Umbraco.Core.Services var repo = RepositoryFactory.CreatePublicAccessRepository(uow); repo.AddOrUpdate(entry); uow.Commit(); - uow.Events.Dispatch(Saved, this, new SaveEventArgs(entry, false, evtMsgs)); + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(Saved, this, saveEventArgs); return OperationStatus.Success(evtMsgs); } @@ -245,7 +249,8 @@ namespace Umbraco.Core.Services using (var uow = UowProvider.GetUnitOfWork()) { - if (uow.Events.DispatchCancelable(Deleting, this, new DeleteEventArgs(entry, evtMsgs))) + var deleteEventArgs = new DeleteEventArgs(entry, evtMsgs); + if (uow.Events.DispatchCancelable(Deleting, this, deleteEventArgs)) { uow.Commit(); return OperationStatus.Cancelled(evtMsgs); @@ -254,7 +259,8 @@ namespace Umbraco.Core.Services var repo = RepositoryFactory.CreatePublicAccessRepository(uow); repo.Delete(entry); uow.Commit(); - uow.Events.Dispatch(Deleted, this, new DeleteEventArgs(entry, false, evtMsgs)); + deleteEventArgs.CanCancel = false; + uow.Events.Dispatch(Deleted, this, deleteEventArgs); return OperationStatus.Success(evtMsgs); } diff --git a/src/Umbraco.Core/Services/RelationService.cs b/src/Umbraco.Core/Services/RelationService.cs index 39dc908fde..b05e8e2391 100644 --- a/src/Umbraco.Core/Services/RelationService.cs +++ b/src/Umbraco.Core/Services/RelationService.cs @@ -412,7 +412,8 @@ namespace Umbraco.Core.Services using (var uow = UowProvider.GetUnitOfWork()) { var repository = RepositoryFactory.CreateRelationRepository(uow); - if (uow.Events.DispatchCancelable(SavingRelation, this, new SaveEventArgs(relation))) + var saveEventArgs = new SaveEventArgs(relation); + if (uow.Events.DispatchCancelable(SavingRelation, this, saveEventArgs)) { uow.Commit(); return relation; @@ -420,7 +421,8 @@ namespace Umbraco.Core.Services repository.AddOrUpdate(relation); uow.Commit(); - uow.Events.Dispatch(SavedRelation, this, new SaveEventArgs(relation, false)); + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(SavedRelation, this, saveEventArgs); return relation; } } @@ -442,7 +444,8 @@ namespace Umbraco.Core.Services using (var uow = UowProvider.GetUnitOfWork()) { - if (uow.Events.DispatchCancelable(SavingRelation, this, new SaveEventArgs(relation))) + var saveEventArgs = new SaveEventArgs(relation); + if (uow.Events.DispatchCancelable(SavingRelation, this, saveEventArgs)) { uow.Commit(); return relation; @@ -450,8 +453,8 @@ namespace Umbraco.Core.Services var repository = RepositoryFactory.CreateRelationRepository(uow); repository.AddOrUpdate(relation); uow.Commit(); - - uow.Events.Dispatch(SavedRelation, this, new SaveEventArgs(relation, false)); + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(SavedRelation, this, saveEventArgs); return relation; } } @@ -568,7 +571,8 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - if (uow.Events.DispatchCancelable(SavingRelation, this, new SaveEventArgs(relation))) + var saveEventArgs = new SaveEventArgs(relation); + if (uow.Events.DispatchCancelable(SavingRelation, this, saveEventArgs)) { uow.Commit(); return; @@ -576,7 +580,8 @@ namespace Umbraco.Core.Services var repository = RepositoryFactory.CreateRelationRepository(uow); repository.AddOrUpdate(relation); uow.Commit(); - uow.Events.Dispatch(SavedRelation, this, new SaveEventArgs(relation, false)); + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(SavedRelation, this, saveEventArgs); } } @@ -588,7 +593,8 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - if (uow.Events.DispatchCancelable(SavingRelationType, this, new SaveEventArgs(relationType))) + var saveEventArgs = new SaveEventArgs(relationType); + if (uow.Events.DispatchCancelable(SavingRelationType, this, saveEventArgs)) { uow.Commit(); return; @@ -596,7 +602,8 @@ namespace Umbraco.Core.Services var repository = RepositoryFactory.CreateRelationTypeRepository(uow); repository.AddOrUpdate(relationType); uow.Commit(); - uow.Events.Dispatch(SavedRelationType, this, new SaveEventArgs(relationType, false)); + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(SavedRelationType, this, saveEventArgs); } } @@ -608,7 +615,8 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - if (uow.Events.DispatchCancelable(DeletingRelation, this, new DeleteEventArgs(relation))) + var deleteEventArgs = new DeleteEventArgs(relation); + if (uow.Events.DispatchCancelable(DeletingRelation, this, deleteEventArgs)) { uow.Commit(); return; @@ -616,7 +624,8 @@ namespace Umbraco.Core.Services var repository = RepositoryFactory.CreateRelationRepository(uow); repository.Delete(relation); uow.Commit(); - uow.Events.Dispatch(DeletedRelation, this, new DeleteEventArgs(relation, false)); + deleteEventArgs.CanCancel = false; + uow.Events.Dispatch(DeletedRelation, this, deleteEventArgs); } } @@ -628,7 +637,8 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - if (uow.Events.DispatchCancelable(DeletingRelationType, this, new DeleteEventArgs(relationType))) + var deleteEventArgs = new DeleteEventArgs(relationType); + if (uow.Events.DispatchCancelable(DeletingRelationType, this, deleteEventArgs)) { uow.Commit(); return; @@ -636,7 +646,8 @@ namespace Umbraco.Core.Services var repository = RepositoryFactory.CreateRelationTypeRepository(uow); repository.Delete(relationType); uow.Commit(); - uow.Events.Dispatch(DeletedRelationType, this, new DeleteEventArgs(relationType, false)); + deleteEventArgs.CanCancel = false; + uow.Events.Dispatch(DeletedRelationType, this, deleteEventArgs); } } diff --git a/src/Umbraco.Core/Services/UserService.cs b/src/Umbraco.Core/Services/UserService.cs index 68aa66e231..d268581f69 100644 --- a/src/Umbraco.Core/Services/UserService.cs +++ b/src/Umbraco.Core/Services/UserService.cs @@ -178,7 +178,8 @@ namespace Umbraco.Core.Services user.AddAllowedSection("content"); user.AddAllowedSection("media"); - if (uow.Events.DispatchCancelable(SavingUser, this, new SaveEventArgs(user))) + var saveEventArgs = new SaveEventArgs(user); + if (uow.Events.DispatchCancelable(SavingUser, this, saveEventArgs)) { uow.Commit(); return user; @@ -186,8 +187,8 @@ namespace Umbraco.Core.Services repository.AddOrUpdate(user); uow.Commit(); - - uow.Events.Dispatch(SavedUser, this, new SaveEventArgs(user, false)); + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(SavedUser, this, saveEventArgs); return user; } @@ -314,7 +315,8 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - if (uow.Events.DispatchCancelable(DeletingUser, this, new DeleteEventArgs(user))) + var deleteEventArgs = new DeleteEventArgs(user); + if (uow.Events.DispatchCancelable(DeletingUser, this, deleteEventArgs)) { uow.Commit(); return; @@ -322,7 +324,8 @@ namespace Umbraco.Core.Services var repository = RepositoryFactory.CreateUserRepository(uow); repository.Delete(user); uow.Commit(); - uow.Events.Dispatch(DeletedUser, this, new DeleteEventArgs(user, false)); + deleteEventArgs.CanCancel = false; + uow.Events.Dispatch(DeletedUser, this, deleteEventArgs); } } } @@ -337,7 +340,8 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - if (raiseEvents && uow.Events.DispatchCancelable(SavingUser, this, new SaveEventArgs(entity))) + var saveEventArgs = new SaveEventArgs(entity); + if (raiseEvents && uow.Events.DispatchCancelable(SavingUser, this, saveEventArgs)) { uow.Commit(); return; @@ -363,7 +367,10 @@ namespace Umbraco.Core.Services uow.Commit(); if (raiseEvents) - uow.Events.Dispatch(SavedUser, this, new SaveEventArgs(entity, false)); + { + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(SavedUser, this, saveEventArgs); + } } catch (DbException ex) { @@ -391,9 +398,10 @@ namespace Umbraco.Core.Services var asArray = entities.ToArray(); using (var uow = UowProvider.GetUnitOfWork()) { + var saveEventArgs = new SaveEventArgs(asArray); if (raiseEvents) { - if (uow.Events.DispatchCancelable(SavingUser, this, new SaveEventArgs(asArray))) + if (uow.Events.DispatchCancelable(SavingUser, this, saveEventArgs)) { uow.Commit(); return; @@ -416,7 +424,10 @@ namespace Umbraco.Core.Services uow.Commit(); if (raiseEvents) - uow.Events.Dispatch(SavedUser, this, new SaveEventArgs(asArray, false)); + { + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(SavedUser, this, saveEventArgs); + } } @@ -719,7 +730,8 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - if (raiseEvents && uow.Events.DispatchCancelable(SavingUserType, this, new SaveEventArgs(userType))) + var saveEventArgs = new SaveEventArgs(userType); + if (raiseEvents && uow.Events.DispatchCancelable(SavingUserType, this, saveEventArgs)) { uow.Commit(); return; @@ -729,7 +741,10 @@ namespace Umbraco.Core.Services repository.AddOrUpdate(userType); uow.Commit(); if (raiseEvents) - uow.Events.Dispatch(SavedUserType, this, new SaveEventArgs(userType, false)); + { + saveEventArgs.CanCancel = false; + uow.Events.Dispatch(SavedUserType, this, saveEventArgs); + } } } @@ -741,7 +756,8 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - if (uow.Events.DispatchCancelable(DeletingUserType, this, new DeleteEventArgs(userType))) + var deleteEventArgs = new DeleteEventArgs(userType); + if (uow.Events.DispatchCancelable(DeletingUserType, this, deleteEventArgs)) { uow.Commit(); return; @@ -749,7 +765,8 @@ namespace Umbraco.Core.Services var repository = RepositoryFactory.CreateUserTypeRepository(uow); repository.Delete(userType); uow.Commit(); - uow.Events.Dispatch(DeletedUserType, this, new DeleteEventArgs(userType, false)); + deleteEventArgs.CanCancel = false; + uow.Events.Dispatch(DeletedUserType, this, deleteEventArgs); } }