46 lines
1.8 KiB
C#
46 lines
1.8 KiB
C#
using System;
|
|
using System.Linq;
|
|
using Umbraco.Core.Models.PublishedContent;
|
|
|
|
namespace Umbraco.Core.PropertyEditors.ValueConverters
|
|
{
|
|
[DefaultPropertyValueConverter]
|
|
public class TextStringValueConverter : PropertyValueConverterBase
|
|
{
|
|
private static readonly string[] PropertyTypeAliases =
|
|
{
|
|
Constants.PropertyEditors.Aliases.TextBox,
|
|
Constants.PropertyEditors.Aliases.TextArea
|
|
};
|
|
|
|
public override bool IsConverter(IPublishedPropertyType propertyType)
|
|
=> PropertyTypeAliases.Contains(propertyType.EditorAlias);
|
|
|
|
public override Type GetPropertyValueType(IPublishedPropertyType propertyType)
|
|
=> typeof (string);
|
|
|
|
public override PropertyCacheLevel GetPropertyCacheLevel(IPublishedPropertyType propertyType)
|
|
=> PropertyCacheLevel.Element;
|
|
|
|
public override object ConvertSourceToIntermediate(IPublishedElement owner, IPublishedPropertyType propertyType, object source, bool preview)
|
|
{
|
|
// in xml a string is: string
|
|
// in the database a string is: string
|
|
// default value is: null
|
|
return source;
|
|
}
|
|
|
|
public override object ConvertIntermediateToObject(IPublishedElement owner, IPublishedPropertyType propertyType, PropertyCacheLevel referenceCacheLevel, object inter, bool preview)
|
|
{
|
|
// source should come from ConvertSource and be a string (or null) already
|
|
return inter ?? string.Empty;
|
|
}
|
|
|
|
public override object ConvertIntermediateToXPath(IPublishedElement owner, IPublishedPropertyType propertyType, PropertyCacheLevel referenceCacheLevel, object inter, bool preview)
|
|
{
|
|
// source should come from ConvertSource and be a string (or null) already
|
|
return inter;
|
|
}
|
|
}
|
|
}
|