// Copyright (c) Umbraco. // See LICENSE for more details. using Umbraco.Cms.Core.Models; namespace Umbraco.Cms.Core.Notifications; public static class ContentNotificationExtensions { /// /// Determines whether a culture is being saved, during a Saving notification /// public static bool IsSavingCulture(this SavingNotification notification, T content, string culture) where T : IContentBase => (content.CultureInfos?.TryGetValue(culture, out ContentCultureInfos cultureInfo) ?? false) && cultureInfo.IsDirty(); /// /// Determines whether a culture has been saved, during a Saved notification /// public static bool HasSavedCulture(this SavedNotification notification, T content, string culture) where T : IContentBase => content.WasPropertyDirty(ContentBase.ChangeTrackingPrefix.UpdatedCulture + culture); /// /// Determines whether a culture is being published, during a Publishing notification /// public static bool IsPublishingCulture(this ContentPublishingNotification notification, IContent content, string culture) => IsPublishingCulture(content, culture); /// /// Determines whether a culture is being unpublished, during an Publishing notification /// public static bool IsUnpublishingCulture(this ContentPublishingNotification notification, IContent content, string culture) => IsUnpublishingCulture(content, culture); /// /// Determines whether a culture is being unpublished, during a Unpublishing notification /// public static bool IsUnpublishingCulture(this ContentUnpublishingNotification notification, IContent content, string culture) => IsUnpublishingCulture(content, culture); /// /// Determines whether a culture has been published, during a Published notification /// public static bool HasPublishedCulture(this ContentPublishedNotification notification, IContent content, string culture) => content.WasPropertyDirty(ContentBase.ChangeTrackingPrefix.ChangedCulture + culture); /// /// Determines whether a culture has been unpublished, during a Published notification /// public static bool HasUnpublishedCulture(this ContentPublishedNotification notification, IContent content, string culture) => HasUnpublishedCulture(content, culture); /// /// Determines whether a culture has been unpublished, during an Unpublished notification /// public static bool HasUnpublishedCulture(this ContentUnpublishedNotification notification, IContent content, string culture) => HasUnpublishedCulture(content, culture); public static bool IsPublishingCulture(IContent content, string culture) => (content.PublishCultureInfos?.TryGetValue(culture, out ContentCultureInfos cultureInfo) ?? false) && cultureInfo.IsDirty(); private static bool IsUnpublishingCulture(IContent content, string culture) => content.IsPropertyDirty(ContentBase.ChangeTrackingPrefix.UnpublishedCulture + culture); public static bool HasUnpublishedCulture(IContent content, string culture) => content.WasPropertyDirty(ContentBase.ChangeTrackingPrefix.UnpublishedCulture + culture); }