public ActionResult GetListJson(CRFStatusGridArgumentModel model) { var dal = GetDAL <StepCinemaDataLayer.DataAccess.CRFStatusLayer>(); var data = dal.GetList(model); return(CamelJson(data)); }
public CRFStatusGridModel GetList(CRFStatusGridArgumentModel model) { string sort = "DetailsId DESC"; if ((!string.IsNullOrWhiteSpace(model.Sort.Field)) && (!string.IsNullOrWhiteSpace(model.Sort.Direction))) { sort = model.Sort.Field + ' ' + model.Sort.Direction; } else { model.Sort.Field = ""; model.Sort.Direction = ""; } int studyId = model.filter.StudyId; string subjectId = model.filter.SubjectId; int statusId = model.filter.StatusId; var query = Entities.CRFDetails.OrderBy(sort) .Where(x => x.StudyId == studyId); if (statusId > 0) { query.Where(x => x.Status == statusId); } if (string.IsNullOrWhiteSpace(subjectId)) { query.Where(x => (x.SubjectId ?? "").Contains(subjectId)); } var count = query.Count(); model.Pagination.Count = count; model.Pagination.MaxPages = (((count - 1) / model.Pagination.PageSize) + 1); if (model.Pagination.CurrentPage > model.Pagination.MaxPages) { model.Pagination.CurrentPage = model.Pagination.MaxPages; } var result = query .Select(x => new { x.DetailsId, x.SubjectId, x.Status, }).Skip((model.Pagination.CurrentPage - 1) * model.Pagination.PageSize).Take(model.Pagination.PageSize) .AsEnumerable().Select(x => new CRFStatusGridValueModel() { DetailId = x.DetailsId, SubjectId = x.SubjectId, StatusName = Enum.GetName(typeof(StepCinemaModels.Constants.CRFDetailStatus), x.Status) }) .ToList(); var data = new CRFStatusGridModel(); data.Arguments = model; data.Columns = CRFStatusGridColumnModel.GetColumns(); data.Values = result; return(data); }