Files
Umbraco-CMS/src/Umbraco.Core/Notifications/TemplateSavingNotification.cs
2022-02-16 16:03:53 +01:00

85 lines
2.5 KiB
C#

// Copyright (c) Umbraco.
// See LICENSE for more details.
using System.Collections.Generic;
using Umbraco.Cms.Core.Events;
using Umbraco.Cms.Core.Models;
namespace Umbraco.Cms.Core.Notifications
{
public class TemplateSavingNotification : SavingNotification<ITemplate>
{
private const string s_templateForContentTypeKey = "CreateTemplateForContentType";
private const string s_contentTypeAliasKey = "ContentTypeAlias";
public TemplateSavingNotification(ITemplate target, EventMessages messages) : base(target, messages)
{
}
public TemplateSavingNotification(IEnumerable<ITemplate> target, EventMessages messages) : base(target, messages)
{
}
public TemplateSavingNotification(ITemplate target, EventMessages messages, bool createTemplateForContentType,
string contentTypeAlias) : base(target, messages)
{
CreateTemplateForContentType = createTemplateForContentType;
ContentTypeAlias = contentTypeAlias;
}
public TemplateSavingNotification(IEnumerable<ITemplate> target, EventMessages messages,
bool createTemplateForContentType,
string contentTypeAlias) : base(target, messages)
{
CreateTemplateForContentType = createTemplateForContentType;
ContentTypeAlias = contentTypeAlias;
}
public bool CreateTemplateForContentType
{
get
{
if (State?.TryGetValue(s_templateForContentTypeKey, out var result) ?? false)
{
if (result is not bool createTemplate)
{
return false;
}
return createTemplate;
}
return false;
}
set
{
if (!value is bool && State is not null)
{
State[s_templateForContentTypeKey] = value;
}
}
}
public string? ContentTypeAlias
{
get
{
if (State?.TryGetValue(s_contentTypeAliasKey, out var result) ?? false)
{
return result as string;
}
return null;
}
set
{
if (value is not null && State is not null)
{
State[s_contentTypeAliasKey] = value;
}
}
}
}
}