2021-02-18 11:06:02 +01:00
|
|
|
|
// Copyright (c) Umbraco.
|
|
|
|
|
|
// See LICENSE for more details.
|
|
|
|
|
|
|
|
|
|
|
|
using Umbraco.Cms.Core.Models;
|
|
|
|
|
|
using Umbraco.Cms.Core.Models.PublishedContent;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Umbraco.Extensions
|
2018-10-03 16:19:41 +02:00
|
|
|
|
{
|
|
|
|
|
|
public static class VariationContextAccessorExtensions
|
|
|
|
|
|
{
|
|
|
|
|
|
public static void ContextualizeVariation(this IVariationContextAccessor variationContextAccessor, ContentVariation variations, ref string culture, ref string segment)
|
2020-03-09 17:07:56 +01:00
|
|
|
|
=> variationContextAccessor.ContextualizeVariation(variations, null, ref culture, ref segment);
|
|
|
|
|
|
|
|
|
|
|
|
public static void ContextualizeVariation(this IVariationContextAccessor variationContextAccessor, ContentVariation variations, int contentId, ref string culture, ref string segment)
|
|
|
|
|
|
=> variationContextAccessor.ContextualizeVariation(variations, (int?)contentId, ref culture, ref segment);
|
|
|
|
|
|
|
|
|
|
|
|
private static void ContextualizeVariation(this IVariationContextAccessor variationContextAccessor, ContentVariation variations, int? contentId, ref string culture, ref string segment)
|
2018-10-03 16:19:41 +02:00
|
|
|
|
{
|
|
|
|
|
|
if (culture != null && segment != null) return;
|
|
|
|
|
|
|
|
|
|
|
|
// use context values
|
|
|
|
|
|
var publishedVariationContext = variationContextAccessor?.VariationContext;
|
2021-02-18 11:06:02 +01:00
|
|
|
|
if (culture == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
culture = variations.VariesByCulture() ? publishedVariationContext?.Culture : "";
|
|
|
|
|
|
}
|
2020-03-09 17:07:56 +01:00
|
|
|
|
|
|
|
|
|
|
if (segment == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (variations.VariesBySegment())
|
|
|
|
|
|
{
|
|
|
|
|
|
segment = contentId == null
|
|
|
|
|
|
? publishedVariationContext?.Segment
|
|
|
|
|
|
: publishedVariationContext?.GetSegment(contentId.Value);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
segment = "";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2018-10-03 16:19:41 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|