Skip to content

Commit

Permalink
moves RelateOnCopyHandler to Core and changes from ApplicationStartin…
Browse files Browse the repository at this point in the history
…g to ApplicationStarted
  • Loading branch information
Shazwazza committed Jan 6, 2015
1 parent 97a0500 commit ea12da9
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 30 deletions.
42 changes: 42 additions & 0 deletions src/Umbraco.Core/Strategies/RelateOnCopyHandler.cs
@@ -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);
}
}
}
}
33 changes: 3 additions & 30 deletions src/Umbraco.Web/Strategies/RelateOnCopyHandler.cs
Expand Up @@ -7,38 +7,11 @@

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
{
protected override void ApplicationStarting(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);
}
protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
}
}
}

0 comments on commit ea12da9

Please sign in to comment.