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); }
/// <typeparam name="T"></typeparam> /// <param name="responseData"> /// The properties of this can be marked up with [DataTablesAttribute] to control sorting/searchability/visibility /// </param> /// <param name="transform"> /// // a transform for custom column rendering e.g. to do a custom date row => new { /// CreatedDate = row.CreatedDate.ToString("dd MM yy") } /// </param> /// <param name="responseOption"></param> /// <returns></returns> public static DataTableActionResult <T> Create <T>(DataTableResponseDataModel <T> responseData, Func <T, object> transform, ResponseOptionModel <T> responseOption = null) where T : class, new() { transform = transform ?? (s => s); var result = new DataTableActionResult <T>(responseData); result.Data = result .Data .Transform <T, Dictionary <string, object> > ( row => TransformTypeInfoHelper.MergeTransformValuesIntoDictionary(transform, row) ) .Transform <Dictionary <string, object>, Dictionary <string, object> >(StringTransformers.StringifyValues); result.Data = ApplyOutputRules(result.Data, responseOption); return(result); }
public static DataTableActionResult <T> GetDataTableActionResult <T>(this DataTableResponseDataModel <T> responseData, ResponseOptionModel <T> responseOption = null) where T : class, new() { return(DataTableActionResult.Create(responseData, responseOption)); }