public static DataTableActionResult <T> Create <T>(DataTableResponseDataModel <T> responseData, ResponseOptionModel <T> responseOption = null) where T : class, new() { var result = new DataTableActionResult <T>(responseData); var dictionaryTransform = DataTableTypeInfo <T> .ToDictionary(responseOption); result.Data = result .Data .Transform(dictionaryTransform) .Transform <Dictionary <string, object>, Dictionary <string, object> >(StringTransformers.StringifyValues); result.Data = ApplyOutputRules(result.Data, responseOption); return(result); }
public static ColumnModel[] GetColumns(this Type t) { var propInfos = DataTableTypeInfo.Properties(t); var columnList = new List <ColumnModel>(); foreach (var dataTablesPropertyInfo in propInfos) { var colDef = new ColumnModel(dataTablesPropertyInfo.PropertyInfo.Name, dataTablesPropertyInfo.PropertyInfo.PropertyType); foreach (var att in dataTablesPropertyInfo.Attributes) { att.ApplyTo(colDef, dataTablesPropertyInfo.PropertyInfo); } columnList.Add(colDef); } return(columnList.ToArray()); }
public static Dictionary <string, object> MergeTransformValuesIntoDictionary <TInput, TTransform>(Func <TInput, TTransform> transformInput, TInput tInput) { // Get the the properties from the input as a dictionary var dict = DataTableTypeInfo <TInput> .ToDictionary(tInput); // Get the transform object var transform = transformInput(tInput); if (transform == null) { return(dict); } foreach (var propertyInfo in transform.GetType().GetTypeInfo().GetProperties()) { dict[propertyInfo.Name] = propertyInfo.GetValue(transform, null); } return(dict); }