public object ResolveEntityPropertyValue(string rawValue, Type propertyType)
{
if (String.IsNullOrEmpty(rawValue))
{
return null;
}
try
{
if (rawValue.IsGuid())
{
Guid linkId = new Guid(rawValue);
Item item = Context.Database.GetItem(new ID(linkId));
return new Link { Id = linkId, LinkType = LinkTypes.Internal, Caption = item.Name, Url = item.GetItemUrl() };
}
else
{
XDocument xmlField = XDocument.Parse(rawValue);
XElement linkElement = xmlField.Element("link");
return LinkUrl.GetUrl(linkElement, Context.Database);
}
}
catch (Exception)
{
// not xml or guid
return null;
}
}