public ActionResult GetListJson(StudiesGridArgumentModel model) { var dal = GetDAL <StepCinemaDataLayer.DataAccess.StudiesLayer>(); var data = dal.GetList(model); return(CamelJson(data)); }
public StudiesGridModel GetList(StudiesGridArgumentModel model) { string studyNumber = model.Filter.StudyNumber ?? ""; string studyName = model.Filter.StudyName ?? ""; string sort = "StudyId 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 = ""; } //var query1 = this.Entities.Studies.OrderBy(sort); var query = this.Entities.Studies.Join(Entities.LOVStudyStatus, lov => lov.StudyStaus, st => st.StudyStatusId, (lov, st) => new { lov.StudyId, lov.StudyName, lov.StudyNumber, lov.NoOfPeriods, lov.CreatedOn, st.StatusName, lov.Active, }).OrderBy(sort); if (!string.IsNullOrEmpty(studyName)) { query = query.Where(x => (x.StudyName ?? "").Contains(studyName)); } if (!string.IsNullOrWhiteSpace(model.Filter.Active)) { var active = (model.Filter.Active == "Y"); query = query.Where(x => x.Active == active); } 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.StudyId, x.StudyNumber, x.StudyName, x.NoOfPeriods, x.CreatedOn, x.StatusName, x.Active }).AsEnumerable() .Select(x => new StudiesGridValueModel() { StudyId = x.StudyId, StudyNumber = x.StudyNumber, StudyName = x.StudyName, NoOfPeriods = x.NoOfPeriods, CreatedOn = x.CreatedOn.ToString("dd MMM yyyy"), Satus = x.StatusName, Active = ((x.Active) ? "Active" : "Inactive") }).Skip((model.Pagination.CurrentPage - 1) * model.Pagination.PageSize).Take(model.Pagination.PageSize).ToList(); model.Filter.Active = model.Filter.Active ?? ""; var data = new StudiesGridModel(); data.Arguments = model; data.Columns = StudiesGridColumnModel.GetColumns(); data.Values = result; return(data); }