Ejemplo n.º 1
0
        public ActionResult LoadRecordData(string id)
        {
            var draw   = Request.Form?.GetValues("draw").FirstOrDefault();
            var start  = Request.Form.GetValues("start").FirstOrDefault();
            var length = Request.Form.GetValues("length").FirstOrDefault();

            var sortColumn    = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault();
            var sortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault();

            int pageSize = length != null?Convert.ToInt32(length) : 0;

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

            int totalRecords = 0;

            IEnumerable <RecordDTO> recordsDto = id == null?recordService.GeRecords() : recordService.GetRecordsByUserId(id);

            if (!(string.IsNullOrEmpty(sortColumn) && string.IsNullOrEmpty(sortColumnDir)))
            {
                if (sortColumn == "DateTime")
                {
                    recordsDto = sortColumnDir == "desc" ? recordsDto.OrderByDescending(r => r.DateTime) : recordsDto.OrderBy(r => r.DateTime);
                }
                else
                {
                    recordsDto = recordsDto.OrderBy(sortColumn + " " + sortColumnDir);
                }
            }

            totalRecords = recordsDto.Count();
            recordsDto   = recordsDto.Skip(skip).Take(pageSize).ToList();
            var data = Mapper.Map <IEnumerable <RecordDTO>, List <RecordModel> >(recordsDto);

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