예제 #1
0
        public ActionResult GetListJson(UserGridArgumentModel model)
        {
            var dal  = GetDAL <StepCinemaDataLayer.DataAccess.UsersLayer>();
            var data = dal.GetList(model);

            return(CamelJson(data));
        }
예제 #2
0
        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);
        }