private void ProcessDefault(IMemberInfo memberInfo, object objValue, IModelColumn columnModel, int RowNumber, ref String Value)
{
String displayFormat = "{0}";
if (columnModel != null)
{
var valuePath = columnModel.GetValue <String>("FieldName").Split('.');
if (!(objValue is XPBaseObject) && !(objValue is String) && !objValue.GetType().IsPrimitive)
{
if (valuePath.Length > 1)
{
IMemberInfo mInfo;
var val = ObjectFormatValues.GetValueRecursive(String.Join(".", valuePath.Skip(1).Take(valuePath.Length - 1)), objValue, out mInfo);
if (val != new object())
{
objValue = String.Concat(val);
}
}
}
if (String.Concat(columnModel.DisplayFormat) != "")
{
displayFormat = columnModel.DisplayFormat;
}
else
if (memberInfo.MemberTypeInfo != null)
{
var attr = memberInfo.MemberTypeInfo.FindAttribute <ObjectCaptionFormatAttribute>();
if (attr != null)
{
displayFormat = attr.FormatString;
Value = String.Format(new ObjectFormatter(), displayFormat, objValue);
}
else
{
var defPropAttr = memberInfo.MemberTypeInfo.FindAttribute <XafDefaultPropertyAttribute>();
if (defPropAttr != null)
{
displayFormat = attr.FormatString;
Value = "{0:" + defPropAttr.Name + "}";
Value = String.Format(new ObjectFormatter(), displayFormat, objValue);
}
}
}
;
}
if (Value == "")
{
Value = String.Format(displayFormat, objValue);
}
if (memberInfo.MemberTypeInfo != null && memberInfo.MemberTypeInfo.IsDomainComponent && columnModel != null)
{
Value = String.Format(@"<a href=""javascript:;"" onclick=""event = event || window.event; event.stopPropagation(); {0}"">{1}</a>", Handler.GetScript(String.Format("'BrowseObject|{0}|{1}'", RowNumber, columnModel.PropertyName)), Value);
}
}