/// <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);
        }
Ejemplo n.º 3
0
 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);
        }