Example #1
0
        public async Task <JsonResult> ListAsync()
        {
            var    draw                = HttpContext.Request.Form["draw"].FirstOrDefault();
            string start               = (Request.Form["start"].FirstOrDefault()).ToString();
            int    length              = Request.Form["length"].FirstOrDefault();
            string sortColumn          = (Request.Form["columns[" + Request.Form["order[0][column]"].FirstOrDefault() + "][name]"].FirstOrDefault()).ToString();
            string sortColumnDirection = (Request.Form["order[0][dir]"].FirstOrDefault()).ToString();
            var    searchValue         = Request.Form.GetValues("search[value]").FirstOrDefault();
            int    pageSize            = length != null?Convert.ToInt32(length) : 0;

            int skip = start != null?Convert.ToInt32(start) : 0;

            int recordsTotal = 0;

            var dat = await service.List();

            var dataQ = dat.AsQueryable();

            if (!string.IsNullOrEmpty(searchValue.ToString()) && searchValue.ToString().Length > 2)
            {
                dataQ = dataQ.Where(m => m.CompanyName.IndexOf(searchValue.ToString(), StringComparison.OrdinalIgnoreCase) >= 0);
            }

            recordsTotal = dataQ.Count();
            var data = dataQ.Skip(skip).Take(pageSize).ToList();

            return(Json(new
            {
                draw,
                recordsFiltered = recordsTotal,
                recordsTotal,
                data
            }, JsonRequestBehavior.AllowGet));
        }