/// <typeparam name="TSource">The type of the source query</typeparam> /// <typeparam name="TTransform">The type of the result</typeparam> /// <param name="query">A queryable for the data</param> /// <param name="request">The request filters</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="outputType">The output type</param> /// <returns>The action result</returns> public static MutableDataTableResult CreateMutable <TSource, TTransform>(IQueryable <TSource> query, IFilterRequest request, Func <TSource, TTransform> transform, OutputType?outputType = null, ArrayOutputType?arrayOutputType = null) { var result = new MutableDataTableResult(query.Cast <object>(), request, outputType); result.Data = result.Data .Transform <TSource, Dictionary <string, object> >(row => TransformTypeInfo.MergeTransformValuesIntoDictionary(transform, row)) .Transform <Dictionary <string, object>, Dictionary <string, object> >(StringTransformers.StringifyValues); result.Data = ApplyOutputRulesForMutable(result.Data, arrayOutputType); return(result); }
public static MutableDataTableResult CreateMutable <TSource>(IQueryable <TSource> query, IFilterRequest request, OutputType?outputType = null, ArrayOutputType?arrayOutputType = null) { var result = new MutableDataTableResult(query.Cast <object>(), request, outputType); result.Data = result.Data .Transform <TSource, Dictionary <string, object> >(DataTablesTypeInfo <TSource> .ToDictionary) .Transform <Dictionary <string, object>, Dictionary <string, object> >(StringTransformers.StringifyValues); result.Data = ApplyOutputRulesForMutable(result.Data, arrayOutputType); return(result); }
public ActionResult Index(FilterRequest filter) { if (Request.IsAjaxRequest()) { PageResponse <UserProfile> response = Post(filter); MutableDataTableResult result = DataTableResultFactory.CreateMutableFromResponse(response, OutputType.Legacy, ArrayOutputType.Index); return(result); } else { ViewBag.Message = "Mvc.Datatables.Sample.Legacy - Sample"; return(View()); } }
public static MutableDataTableResult CreateMutableFromResponse <TSource>(IPageResponse <TSource> response, OutputType?outputType = null, ArrayOutputType?arrayOutputType = null) { IPageResponse <object> mutableResponse = PageResponse <TSource> .ToMutableResponse(response); var result = new MutableDataTableResult(mutableResponse, outputType); result.Data = result.Data .Transform <TSource, Dictionary <string, object> >(DataTablesTypeInfo <TSource> .ToDictionary) .Transform <Dictionary <string, object>, Dictionary <string, object> >(StringTransformers.StringifyValues); result.Data = ApplyOutputRulesForMutable(result.Data, arrayOutputType); return(result); }