Relation Service
Automatically relate to the root node
using Umbraco.Cms.Core.Events;
using Umbraco.Cms.Core.Notifications;
using Umbraco.Cms.Core.Services;
namespace Doccers.Core.Components;
public class ContentPublishedNotificationHandler(IContentService contentService, IRelationService relationService) : INotificationHandler<ContentPublishedNotification>
{
public void Handle(ContentPublishedNotification notification)
{
var home = contentService.GetRootContent().FirstOrDefault();
if (home == null) return;
// Get the relation type by alias
var relationType = relationService.GetRelationTypeByAlias("homesick");
if (relationType == null) return;
foreach (var entity in notification.PublishedEntities
.Where(x => x.Id != home.Id))
{
// Check if they are already related
if (!relationService.AreRelated(home.Id, entity.Id))
{
// If not then let us relate the current entity to home
relationService.Relate(home.Id, entity.Id, relationType);
}
}
}
}Last updated
Was this helpful?