private ValueProviderResult GetValueResult(Item item, string key)
{
if (item == null)
return new ValueProviderResult(null, key, CultureInfo.CurrentCulture);
if (string.IsNullOrEmpty(key))
{
return new SitecoreValueProviderResult(item, item.ID.ToString(), CultureInfo.CurrentCulture);
}
if ("id".Equals(key, StringComparison.InvariantCultureIgnoreCase))
{
return new ValueProviderResult(item.ID.ToGuid(), item.ID.ToString(), CultureInfo.CurrentCulture);
}
if ("path".Equals(key, StringComparison.InvariantCultureIgnoreCase))
{
return new ValueProviderResult(item.Paths.FullPath, item.Paths.FullPath, CultureInfo.CurrentCulture);
}
var field = item.Fields.FirstOrDefault(f => f.Name.Equals(key, StringComparison.InvariantCultureIgnoreCase));
return field != null ? new ValueProviderResult(field.GetValue(true, true), field.GetValue(true, true), CultureInfo.CurrentCulture) : null;
}