public static string GetFieldName <TRoot>(Expression <Func <TRoot, object> > sourceProperty) { var propertyChain = PropertyChainFromExpression.Get(sourceProperty); List <string> names = new List <string>(); foreach (var prop in propertyChain) { var attrs = (DisplayAttribute[])prop.GetCustomAttributes(typeof(DisplayAttribute), false); string namepart; if ((attrs != null) && (attrs.Length > 0)) { namepart = TitleHelper.StringToPascalCase(attrs[0].GetName()); } else { namepart = prop.Name; } foreach (var symb in RemovedSimbols) { namepart = namepart.Replace(symb, ""); } names.Add(namepart); } var name = String.Join(".", names); return(name); }
public static string GetCollectionName(Expression <Func <TDoc, IList <TRow> > > sourceProperty) { var propertyChain = PropertyChainFromExpression.Get(sourceProperty); List <string> names = new List <string>(); foreach (var prop in propertyChain) { var attrs = (DisplayAttribute[])prop.GetCustomAttributes(typeof(DisplayAttribute), false); string namepart; if ((attrs != null) && (attrs.Length > 0)) { namepart = TitleHelper.StringToPascalCase(attrs[0].GetName()); } else { namepart = prop.Name; } names.Add(namepart); } var name = String.Join(".", names); return(name); }