using Umbraco.Core.Models;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Core.Services;
namespace Umbraco.Web.Models.PublishedContent
{
///
/// Provides a default implementation for that allows
/// for use of fall-back languages
///
///
/// Inherits from that implments what was available in v7.
///
public class PublishedValueLanguageFallback : PublishedValueFallback
{
private readonly ILocalizationService _localizationService;
public PublishedValueLanguageFallback(ServiceContext services)
{
_localizationService = services.LocalizationService;
}
///
public override object GetValue(IPublishedProperty property, string culture, string segment, object defaultValue)
{
object value;
if (TryGetValueFromFallbackLanguage(property, culture, segment, defaultValue, out value))
{
return value;
}
return base.GetValue(property, culture, segment, defaultValue);
}
///
public override T GetValue(IPublishedProperty property, string culture, string segment, T defaultValue)
{
T value;
if (TryGetValueFromFallbackLanguage(property, culture, segment, defaultValue, out value))
{
return value;
}
return base.GetValue(property, culture, segment, defaultValue);
}
///
public override object GetValue(IPublishedElement content, string alias, string culture, string segment, object defaultValue)
{
object value;
if (TryGetValueFromFallbackLanguage(content, alias, culture, segment, defaultValue, out value))
{
return value;
}
return base.GetValue(content, alias, culture, segment, defaultValue);
}
///
public override T GetValue(IPublishedElement content, string alias, string culture, string segment, T defaultValue)
{
T value;
if (TryGetValueFromFallbackLanguage(content, alias, culture, segment, defaultValue, out value))
{
return value;
}
return base.GetValue(content, alias, culture, segment, defaultValue);
}
///
public override object GetValue(IPublishedContent content, string alias, string culture, string segment, object defaultValue, bool recurse, PublishedValueFallbackPriority fallbackPriority)
{
return GetValue