public ActionResult GetListJson(CRFStatusGridArgumentModel model)
        {
            var dal  = GetDAL <StepCinemaDataLayer.DataAccess.CRFStatusLayer>();
            var data = dal.GetList(model);

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