using Umbraco.Core.Models;
namespace Umbraco.Core
{
///
/// Provides extension methods for various enumerations.
///
public static class ContentVariationExtensions
{
///
/// Determines whether a variation has all flags set.
///
public static bool Has(this ContentVariation variation, ContentVariation values)
=> (variation & values) == values;
///
/// Determines whether a variation has at least a flag set.
///
public static bool HasAny(this ContentVariation variation, ContentVariation values)
=> (variation & values) != ContentVariation.Unknown;
///
/// Determines whether a variation does not support culture variations
///
///
///
public static bool DoesNotSupportCulture(this ContentVariation variation)
{
return !variation.HasAny(ContentVariation.CultureNeutral | ContentVariation.CultureSegment);
}
///
/// Determines whether a variation does support culture variations
///
///
///
public static bool DoesSupportCulture(this ContentVariation variation)
{
return variation.HasAny(ContentVariation.CultureNeutral | ContentVariation.CultureSegment);
}
///
/// Determines whether a variation does not support invariant variations
///
///
///
public static bool DoesNotSupportInvariant(this ContentVariation variation)
{
return !variation.HasAny(ContentVariation.InvariantNeutral | ContentVariation.InvariantSegment);
}
///
/// Determines whether a variation does support invariant variations
///
///
///
public static bool DoesSupportInvariant(this ContentVariation variation)
{
return variation.HasAny(ContentVariation.InvariantNeutral | ContentVariation.InvariantSegment);
}
///
/// Determines whether a variation does not support segment variations
///
///
///
public static bool DoesNotSupportSegment(this ContentVariation variation)
{
return !variation.HasAny(ContentVariation.InvariantSegment | ContentVariation.CultureSegment);
}
///
/// Determines whether a variation does not support neutral variations
///
///
///
public static bool DoesNotSupportNeutral(this ContentVariation variation)
{
return !variation.HasAny(ContentVariation.InvariantNeutral | ContentVariation.CultureNeutral);
}
}
}