diff --git a/src/Umbraco.Infrastructure/Services/Implement/ContentService.cs b/src/Umbraco.Infrastructure/Services/Implement/ContentService.cs index 153665debf..40e3a28de8 100644 --- a/src/Umbraco.Infrastructure/Services/Implement/ContentService.cs +++ b/src/Umbraco.Infrastructure/Services/Implement/ContentService.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Globalization; using System.Linq; @@ -242,7 +242,7 @@ namespace Umbraco.Core.Services.Implement { // TODO: what about culture? - using (var scope = ScopeProvider.CreateScope()) + using (var scope = ScopeProvider.CreateScope(autoComplete:true)) { // locking the content tree secures content types too scope.WriteLock(Constants.Locks.ContentTree); @@ -256,21 +256,9 @@ namespace Umbraco.Core.Services.Implement throw new ArgumentException("No content with that id.", nameof(parentId)); // causes rollback var content = parentId > 0 ? new Content(name, parent, contentType, userId) : new Content(name, parentId, contentType, userId); - var evtMsgs = EventMessagesFactory.Get(); - // if saving is cancelled, content remains without an identity - var saveEventArgs = new ContentSavingEventArgs(content, evtMsgs); - if (!scope.Events.DispatchCancelable(Saving, this, saveEventArgs, nameof(Saving))) - { - _documentRepository.Save(content); + Save(content, userId); - scope.Events.Dispatch(Saved, this, saveEventArgs.ToContentSavedEventArgs(), nameof(Saved)); - scope.Events.Dispatch(TreeChanged, this, new TreeChange(content, TreeChangeTypes.RefreshNode).ToEventArgs()); - - Audit(AuditType.New, content.CreatorId, content.Id, $"Content '{content.Name}' was created with Id {content.Id}"); - } - - scope.Complete(); return content; } } @@ -290,7 +278,7 @@ namespace Umbraco.Core.Services.Implement if (parent == null) throw new ArgumentNullException(nameof(parent)); - using (var scope = ScopeProvider.CreateScope()) + using (var scope = ScopeProvider.CreateScope(autoComplete:true)) { // locking the content tree secures content types too scope.WriteLock(Constants.Locks.ContentTree); @@ -301,21 +289,8 @@ namespace Umbraco.Core.Services.Implement var content = new Content(name, parent, contentType, userId); - var evtMsgs = EventMessagesFactory.Get(); + Save(content, userId); - // if saving is cancelled, content remains without an identity - var saveEventArgs = new ContentSavingEventArgs(content, evtMsgs); - if (!scope.Events.DispatchCancelable(Saving, this, saveEventArgs, nameof(Saving))) - { - _documentRepository.Save(content); - - scope.Events.Dispatch(Saved, this, saveEventArgs.ToContentSavedEventArgs(), nameof(Saved)); - scope.Events.Dispatch(TreeChanged, this, new TreeChange(content, TreeChangeTypes.RefreshNode).ToEventArgs()); - - Audit(AuditType.New, content.CreatorId, content.Id, $"Content '{content.Name}' was created with Id {content.Id}"); - } - - scope.Complete(); return content; } } diff --git a/src/Umbraco.Infrastructure/Services/Implement/MemberService.cs b/src/Umbraco.Infrastructure/Services/Implement/MemberService.cs index 90cbaa4fd6..0ec08fb051 100644 --- a/src/Umbraco.Infrastructure/Services/Implement/MemberService.cs +++ b/src/Umbraco.Infrastructure/Services/Implement/MemberService.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Logging; @@ -219,18 +219,7 @@ namespace Umbraco.Infrastructure.Services.Implement var member = new Member(name, email.ToLower().Trim(), username, passwordValue, memberType, isApproved, -1); - var saveEventArgs = new SaveEventArgs(member); - if (!scope.Events.DispatchCancelable(Saving, this, saveEventArgs)) - { - _memberRepository.Save(member); - - saveEventArgs.CanCancel = false; - scope.Events.Dispatch(Saved, this, saveEventArgs); - - Audit(AuditType.New, member.CreatorId, member.Id, $"Member '{member.Name}' was created with Id {member.Id}"); - } - - scope.Complete(); + Save(member); return member; } } @@ -301,18 +290,7 @@ namespace Umbraco.Infrastructure.Services.Implement throw new ArgumentException($"Member type with alias {memberType.Alias} does not exist or is a different member type."); // causes rollback var member = new Member(name, email.ToLower().Trim(), username, passwordValue, memberType, isApproved, -1); - var saveEventArgs = new SaveEventArgs(member); - if (!scope.Events.DispatchCancelable(Saving, this, saveEventArgs)) - { - _memberRepository.Save(member); - - saveEventArgs.CanCancel = false; - scope.Events.Dispatch(Saved, this, saveEventArgs); - - Audit(AuditType.New, member.CreatorId, member.Id, $"Member '{member.Name}' was created with Id {member.Id}"); - } - - scope.Complete(); + Save(member); return member; } } @@ -428,7 +406,7 @@ namespace Umbraco.Infrastructure.Services.Implement { using (var scope = ScopeProvider.CreateScope(autoComplete: true)) { - scope.ReadLock(Constants.Locks.MemberTree); + scope.ReadLock(Constants.Locks.MemberTree); return _memberRepository.GetByUsername(username); } } @@ -783,7 +761,7 @@ namespace Umbraco.Infrastructure.Services.Implement public void SetLastLogin(string username, DateTime date) { using (var scope = ScopeProvider.CreateScope()) - { + { _memberRepository.SetLastLogin(username, date); scope.Complete(); }