public ActionResult GetListJson(UserGridArgumentModel model) { var dal = GetDAL <StepCinemaDataLayer.DataAccess.UsersLayer>(); var data = dal.GetList(model); return(CamelJson(data)); }
public UserGridModel GetList(UserGridArgumentModel model) { string firstName = model.Filter.FirstName ?? ""; string lastName = model.Filter.LastName ?? ""; string sort = "UserId 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 query = this.Entities.Users.OrderBy(sort); if (!string.IsNullOrEmpty(firstName)) { query = query.Where(x => (x.FirstName ?? "").Contains(firstName)); } if (!string.IsNullOrEmpty(lastName)) { query = query.Where(x => (x.LastName ?? "").Contains(lastName)); } 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 UserGridValueModel() { UserId = x.UserId, Email = x.Email, FirstName = x.FirstName, LastName = x.LastName, 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 UserGridModel(); data.Arguments = model; data.Columns = UserGridColumnModel.GetColumns(); data.Values = result; return(data); }