public Tuple <IEnumerable <ExamDTO>, int> GetExams(QueryGradeExamViewModel model)
        {
            if (model == null)
            {
                return(null);
            }
            var result = _context.GradeExams.AsQueryable();

            if (model.CreateBy.Valid())
            {
                result = result.Where(r => r.CreateById == model.CreateBy.Value);
            }
            if (model.HandleBy.Valid())
            {
                result = result.Where(r => r.HandleById == model.HandleBy.Value);
            }
            if (model.HoldBy.Valid())
            {
                result = result.Where(r => r.HoldBy.Code == model.HoldBy.Value);
            }
            if (model.Name.Valid())
            {
                var nameLen = model.Name.Value.Length;
                result = result.Where(r => r.Name.Length >= nameLen).Where(r => r.Name.StartsWith(model.Name.Value));
            }

            if (!model.Create.Valid())
            {
                model.Create = new QueryByDate()
                {
                    Start = DateTime.Now.AddYears(-1), End = DateTime.Now
                }
            }
            ;
            if (model.ExecuteTime.Valid())
            {
                result = result.Where(r => r.ExecuteTime >= model.ExecuteTime.Start).Where(r => r.ExecuteTime <= model.ExecuteTime.End);
            }

            result = result.Where(r => r.Create >= model.Create.Start).Where(r => r.Create <= model.Create.End);
            var list = result.SplitPage(model.Pages.ValidSplitPage());

            return(new Tuple <IEnumerable <ExamDTO>, int>(list.Item1.ToList().Select(f => f.ToDTO()), list.Item2));
        }
Esempio n. 2
0
        public IActionResult GetExam([FromBody] QueryGradeExamViewModel model)
        {
            var result = gradeServices.GetExams(model);

            return(new JsonResult(new EntitiesListViewModel <ExamDTO>(result?.Item1, result?.Item2 ?? -1)));
        }