using System;
using Microsoft.AspNetCore.DataProtection.Infrastructure;
using Umbraco.Extensions;
namespace Umbraco.Cms.Web.Common.Extensions
{
///
/// Contains extension methods for the interface.
///
public static class ApplicationDiscriminatorExtensions
{
private static string s_applicationId;
///
/// Gets an application id which respects downstream customizations.
///
///
/// Hashed to obscure any unintended infrastructure details e.g. the default value is ContentRootPath.
///
public static string GetApplicationId(this IApplicationDiscriminator applicationDiscriminator)
{
if (s_applicationId != null)
{
return s_applicationId;
}
if (applicationDiscriminator == null)
{
throw new ArgumentNullException(nameof(applicationDiscriminator));
}
return s_applicationId = applicationDiscriminator.Discriminator.GenerateHash();
}
}
}