public ActionResult GetTestData(DataTableSettings model, ExtraParam modelParam) { var dt = new PostsData(); var result = dt.Post.ToList(); var jsonData = GetJsonObject(result.Count(), model, result, p => new IComparable[] { p.Id, p.Name, p.Description, p.Name + p.Description }); return(Json(jsonData, JsonRequestBehavior.AllowGet)); }
public JsonResult GetData([FromBody] DataTableSettings settings) { List <Object> data = MockData.MockRows; IEnumerable <FilterExecutor> filterExecutors = settings.filters.Select(filter => FilterExecutor.Factory(filter)); IEnumerable <Object> filteredData = filterExecutors.Execute(data); IEnumerable <Object> sortedData = settings.sorting.SortData(filteredData); IEnumerable <Object> pagedData = sortedData.Skip(settings.paging.size * settings.paging.pageNumber) .Take(settings.paging.size); settings.rows = pagedData.ToList(); return(new JsonResult(JsonConvert.SerializeObject(settings))); }
public object GetJsonObject(int?totalRow, DataTableSettings dt, IEnumerable <Post> query, Func <Post, IComparable[]> funcSelectedProperties) { var selectQuery = query.ToList(); var total = totalRow.GetValueOrDefault(); var rows = selectQuery.Select(it => funcSelectedProperties.Invoke(it).ToList()); return(new { dt.draw, recordsTotal = selectQuery.Count, recordsFiltered = selectQuery.Count, data = rows.ToArray(), dt.start }); }