Ejemplo n.º 1
0
        public ActionResult GetListJson(StudiesGridArgumentModel model)
        {
            var dal  = GetDAL <StepCinemaDataLayer.DataAccess.StudiesLayer>();
            var data = dal.GetList(model);

            return(CamelJson(data));
        }
Ejemplo n.º 2
0
        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);
        }