Example #1
0
        public async Task <int> Count(SemesterFilter filter)
        {
            IQueryable <SemesterDAO> semesterDAOs = examRegContext.Semester.AsNoTracking();

            semesterDAOs = DynamicFilter(semesterDAOs, filter);

            return(await semesterDAOs.CountAsync());
        }
Example #2
0
        public async Task <Term> GetSemesterId(Term term)
        {
            SemesterFilter filter = new SemesterFilter
            {
                Code = new StringFilter {
                    Equal = term.SemesterCode
                }
            };

            Semester semester = await UOW.SemesterRepository.Get(filter);

            term.SemesterId = semester.Id;

            return(term);
        }
Example #3
0
        public async Task <ExamProgram> GetSemesterId(ExamProgram examProgram)
        {
            SemesterFilter filter = new SemesterFilter
            {
                Code = new StringFilter {
                    Equal = examProgram.SemesterCode
                }
            };

            Semester semester = await UOW.SemesterRepository.Get(filter);

            examProgram.SemesterId = semester.Id;

            return(examProgram);
        }
Example #4
0
        private async Task <bool> ValidateId(Semester Semester)
        {
            SemesterFilter filter = new SemesterFilter
            {
                Id = new GuidFilter {
                    Equal = Semester.Id
                }
            };

            int count = await UOW.SemesterRepository.Count(filter);

            if (count == 0)
            {
                Semester.AddError(nameof(SemesterValidator), nameof(Semester), ERROR.IdNotFound);
            }

            return(count == 1);
        }
Example #5
0
        private async Task <bool> ValidateNotExist(Semester semester)
        {
            SemesterFilter filter = new SemesterFilter
            {
                StartYear = new ShortFilter {
                    Equal = semester.StartYear
                },
                EndYear = new ShortFilter {
                    Equal = semester.EndYear
                },
                IsFirstHalf = semester.IsFirstHalf
            };

            int count = await UOW.SemesterRepository.Count(filter);

            if (count > 0)
            {
                semester.AddError(nameof(SemesterValidator), nameof(semester), ERROR.SemesterExisted);
                return(false);
            }
            return(true);
        }
Example #6
0
        public async Task <Semester> Get(SemesterFilter filter)
        {
            if (filter == null)
            {
                return(null);
            }

            IQueryable <SemesterDAO> query = examRegContext.Semester.AsNoTracking();

            query = DynamicFilter(query, filter);

            List <Semester> list = await query.Select(s => new Semester()
            {
                Id          = s.Id,
                Code        = string.Format(s.StartYear + "_" + s.EndYear + "_" + (s.IsFirstHalf ? 1 : 2)),
                StartYear   = s.StartYear,
                EndYear     = s.EndYear,
                IsFirstHalf = s.IsFirstHalf
            }).ToListAsync();

            return(list.FirstOrDefault());
        }
 public async Task <List <Semester> > List(SemesterFilter filter)
 {
     return(await UOW.SemesterRepository.List(filter));
 }
Example #8
0
        private IQueryable <SemesterDAO> DynamicOrder(IQueryable <SemesterDAO> query, SemesterFilter filter)
        {
            switch (filter.OrderType)
            {
            case OrderType.ASC:
                switch (filter.OrderBy)
                {
                case SemesterOrder.Code:
                    query = query.OrderBy(q => q.StartYear);
                    break;

                case SemesterOrder.IsFirstHalf:
                    query = query.OrderBy(q => q.IsFirstHalf);
                    break;

                default:
                    query = query.OrderBy(q => q.CX);
                    break;
                }
                break;

            case OrderType.DESC:
                switch (filter.OrderBy)
                {
                case SemesterOrder.Code:
                    query = query.OrderByDescending(q => q.StartYear);
                    break;

                case SemesterOrder.IsFirstHalf:
                    query = query.OrderByDescending(q => q.IsFirstHalf);
                    break;

                default:
                    query = query.OrderByDescending(q => q.CX);
                    break;
                }
                break;

            default:
                query = query.OrderBy(q => q.CX);
                break;
            }
            return(query.Skip(filter.Skip).Take(filter.Take));
        }
Example #9
0
        private IQueryable <SemesterDAO> DynamicFilter(IQueryable <SemesterDAO> query, SemesterFilter filter)
        {
            if (filter == null)
            {
                return(query.Where(q => 1 == 0));
            }
            if (filter.Id != null)
            {
                query = query.Where(q => q.Id, filter.Id);
            }
            if (filter.Code != null)
            {
                string[] codeData = filter.Code.Equal.Split("_");
                query = query.Where(q => q.StartYear, new ShortFilter {
                    Equal = short.Parse(codeData[0])
                });
                query = query.Where(q => q.EndYear, new ShortFilter {
                    Equal = short.Parse(codeData[1])
                });
                query = query.Where(q => q.IsFirstHalf == (codeData[2] == "1" ? true : false));
            }
            if (filter.StartYear != null)
            {
                query = query.Where(q => q.StartYear, filter.StartYear);
            }
            if (filter.EndYear != null)
            {
                query = query.Where(q => q.EndYear, filter.EndYear);
            }
            if (filter.IsFirstHalf != null)
            {
                query = query.Where(c => c.IsFirstHalf == filter.IsFirstHalf);
            }

            return(query);
        }
 public async Task <PagedList <SemesterModel> > GetSemestersAsync(ListOptions listOptions, SemesterFilter filter)
 {
     throw new NotImplementedException();
 }