Merge remote-tracking branch 'origin/release/13.0' into v13/dev

This commit is contained in:
Bjarke Berg
2023-11-14 12:43:11 +01:00
34 changed files with 1366 additions and 481 deletions

View File

@@ -56,6 +56,12 @@ public interface IPublishedPropertyType
/// </summary>
PropertyCacheLevel DeliveryApiCacheLevel { get; }
/// <summary>
/// Gets the property cache level for Delivery API representation when expanding the property.
/// </summary>
/// <remarks>Defaults to the value of <see cref="DeliveryApiCacheLevel"/>.</remarks>
PropertyCacheLevel DeliveryApiCacheLevelForExpansion => DeliveryApiCacheLevel;
/// <summary>
/// Gets the property model CLR type.
/// </summary>

View File

@@ -21,6 +21,7 @@ namespace Umbraco.Cms.Core.Models.PublishedContent
private IPropertyValueConverter? _converter;
private PropertyCacheLevel _cacheLevel;
private PropertyCacheLevel _deliveryApiCacheLevel;
private PropertyCacheLevel _deliveryApiCacheLevelForExpansion;
private Type? _modelClrType;
private Type? _clrType;
@@ -192,9 +193,15 @@ namespace Umbraco.Cms.Core.Models.PublishedContent
}
_cacheLevel = _converter?.GetPropertyCacheLevel(this) ?? PropertyCacheLevel.Snapshot;
_deliveryApiCacheLevel = _converter is IDeliveryApiPropertyValueConverter deliveryApiPropertyValueConverter
? deliveryApiPropertyValueConverter.GetDeliveryApiPropertyCacheLevel(this)
: _cacheLevel;
if (_converter is IDeliveryApiPropertyValueConverter deliveryApiPropertyValueConverter)
{
_deliveryApiCacheLevel = deliveryApiPropertyValueConverter.GetDeliveryApiPropertyCacheLevel(this);
_deliveryApiCacheLevelForExpansion = deliveryApiPropertyValueConverter.GetDeliveryApiPropertyCacheLevelForExpansion(this);
}
else
{
_deliveryApiCacheLevel = _deliveryApiCacheLevelForExpansion = _cacheLevel;
}
_modelClrType = _converter?.GetPropertyValueType(this) ?? typeof(object);
}
@@ -244,6 +251,20 @@ namespace Umbraco.Cms.Core.Models.PublishedContent
}
}
/// <inheritdoc />
public PropertyCacheLevel DeliveryApiCacheLevelForExpansion
{
get
{
if (!_initialized)
{
Initialize();
}
return _deliveryApiCacheLevelForExpansion;
}
}
/// <inheritdoc />
public object? ConvertSourceToInter(IPublishedElement owner, object? source, bool preview)
{