moves RelateOnCopyHandler to Core and changes from ApplicationStarting to ApplicationStarted
This commit is contained in:
42
src/Umbraco.Core/Strategies/RelateOnCopyHandler.cs
Normal file
42
src/Umbraco.Core/Strategies/RelateOnCopyHandler.cs
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
using System;
|
||||||
|
using Umbraco.Core.Auditing;
|
||||||
|
using Umbraco.Core.Models;
|
||||||
|
using Umbraco.Core.Services;
|
||||||
|
|
||||||
|
namespace Umbraco.Core.Strategies
|
||||||
|
{
|
||||||
|
public sealed class RelateOnCopyHandler : ApplicationEventHandler
|
||||||
|
{
|
||||||
|
protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
|
||||||
|
{
|
||||||
|
ContentService.Copied += ContentServiceCopied;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ContentServiceCopied(IContentService sender, Core.Events.CopyEventArgs<IContent> e)
|
||||||
|
{
|
||||||
|
if (e.RelateToOriginal)
|
||||||
|
{
|
||||||
|
var relationService = ApplicationContext.Current.Services.RelationService;
|
||||||
|
|
||||||
|
var relationType = relationService.GetRelationTypeByAlias(Constants.Conventions.RelationTypes.RelateDocumentOnCopyAlias);
|
||||||
|
|
||||||
|
if (relationType == null)
|
||||||
|
{
|
||||||
|
relationType = new RelationType(new Guid(Constants.ObjectTypes.Document),
|
||||||
|
new Guid(Constants.ObjectTypes.Document),
|
||||||
|
Constants.Conventions.RelationTypes.RelateDocumentOnCopyAlias,
|
||||||
|
Constants.Conventions.RelationTypes.RelateDocumentOnCopyName) { IsBidirectional = true };
|
||||||
|
|
||||||
|
relationService.Save(relationType);
|
||||||
|
}
|
||||||
|
|
||||||
|
var relation = new Relation(e.Original.Id, e.Copy.Id, relationType);
|
||||||
|
relationService.Save(relation);
|
||||||
|
|
||||||
|
Audit.Add(AuditTypes.Copy,
|
||||||
|
string.Format("Copied content with Id: '{0}' related to original content with Id: '{1}'",
|
||||||
|
e.Copy.Id, e.Original.Id), e.Copy.WriterId, e.Copy.Id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,38 +7,11 @@ using Umbraco.Core.Services;
|
|||||||
|
|
||||||
namespace Umbraco.Web.Strategies
|
namespace Umbraco.Web.Strategies
|
||||||
{
|
{
|
||||||
|
[Obsolete("This class is no longer used and will be removed from the codebase in future versions")]
|
||||||
public sealed class RelateOnCopyHandler : ApplicationEventHandler
|
public sealed class RelateOnCopyHandler : ApplicationEventHandler
|
||||||
{
|
{
|
||||||
protected override void ApplicationStarting(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
|
protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
|
||||||
{
|
{
|
||||||
ContentService.Copied += ContentServiceCopied;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ContentServiceCopied(IContentService sender, Core.Events.CopyEventArgs<IContent> e)
|
|
||||||
{
|
|
||||||
if (e.RelateToOriginal)
|
|
||||||
{
|
|
||||||
var relationService = ApplicationContext.Current.Services.RelationService;
|
|
||||||
|
|
||||||
var relationType = relationService.GetRelationTypeByAlias(Constants.Conventions.RelationTypes.RelateDocumentOnCopyAlias);
|
|
||||||
|
|
||||||
if (relationType == null)
|
|
||||||
{
|
|
||||||
relationType = new RelationType(new Guid(Constants.ObjectTypes.Document),
|
|
||||||
new Guid(Constants.ObjectTypes.Document),
|
|
||||||
Constants.Conventions.RelationTypes.RelateDocumentOnCopyAlias,
|
|
||||||
Constants.Conventions.RelationTypes.RelateDocumentOnCopyName) { IsBidirectional = true };
|
|
||||||
|
|
||||||
relationService.Save(relationType);
|
|
||||||
}
|
|
||||||
|
|
||||||
var relation = new Relation(e.Original.Id, e.Copy.Id, relationType);
|
|
||||||
relationService.Save(relation);
|
|
||||||
|
|
||||||
Audit.Add(AuditTypes.Copy,
|
|
||||||
string.Format("Copied content with Id: '{0}' related to original content with Id: '{1}'",
|
|
||||||
e.Copy.Id, e.Original.Id), e.Copy.WriterId, e.Copy.Id);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user