public async Task <List <HighSchoolDTO> > ListHighSchool([FromBody] HighSchoolFilterDTO highSchoolFilterDTO)
        {
            HighSchoolBOFilter highSchoolFilter = new HighSchoolBOFilter
            {
                Code = new StringFilter {
                    StartWith = highSchoolFilterDTO.Code
                },
                Name = new StringFilter {
                    Contain = highSchoolFilterDTO.Name
                },
                ProvinceId = highSchoolFilterDTO.ProvinceId,
                Skip       = highSchoolFilterDTO.Skip,
                Take       = int.MaxValue,
                OrderBy    = HighSchoolOrder.Name,
                OrderType  = OrderType.ASC
            };

            var listHighSchool = await HighSchoolService.List(highSchoolFilter);

            if (listHighSchool == null)
            {
                return(null);
            }
            return(listHighSchool.Select(t => new HighSchoolDTO
            {
                Id = t.Id,
                Code = t.Code,
                Name = t.Name,
                ProvinceId = t.ProvinceId
            }).ToList());
        }
        public async Task <int> Count(HighSchoolBOFilter highSchoolFilter)
        {
            IQueryable <HighSchoolDAO> highSchoolDAOs = context.HighSchool;

            highSchoolDAOs = DynamicFilter(highSchoolDAOs, highSchoolFilter);
            return(await highSchoolDAOs.CountAsync());
        }
        public async Task <List <HighSchoolBO> > List(HighSchoolBOFilter highSchoolFilter)
        {
            if (highSchoolFilter == null)
            {
                return(new List <HighSchoolBO>());
            }
            IQueryable <HighSchoolDAO> highSchoolDAOs = context.HighSchool;

            highSchoolDAOs = DynamicFilter(highSchoolDAOs, highSchoolFilter);
            highSchoolDAOs = DynamicOrder(highSchoolDAOs, highSchoolFilter);
            var highSchools = await DynamicSelect(highSchoolDAOs);

            return(highSchools);
        }
        private IQueryable <HighSchoolDAO> DynamicOrder(IQueryable <HighSchoolDAO> query, HighSchoolBOFilter highSchoolFilter)
        {
            switch (highSchoolFilter.OrderType)
            {
            case OrderType.ASC:
                switch (highSchoolFilter.OrderBy)
                {
                case HighSchoolOrder.Code:
                    query = query.OrderBy(q => q.Code);
                    break;

                case HighSchoolOrder.Name:
                    query = query.OrderBy(q => q.Name);
                    break;

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

            case OrderType.DESC:
                switch (highSchoolFilter.OrderBy)
                {
                case HighSchoolOrder.Code:
                    query = query.OrderByDescending(q => q.Code);
                    break;

                case HighSchoolOrder.Name:
                    query = query.OrderByDescending(q => q.Name);
                    break;

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

            default:
                query = query.OrderBy(q => q.Id);
                break;
            }
            query = query.Skip(highSchoolFilter.Skip).Take(highSchoolFilter.Take);
            return(query);
        }
        private IQueryable <HighSchoolDAO> DynamicFilter(IQueryable <HighSchoolDAO> query, HighSchoolBOFilter highSchoolFilter)
        {
            if (highSchoolFilter == null)
            {
                return(query.Where(q => 1 == 0));
            }
            query = query.Where(q => q.ProvinceId == highSchoolFilter.ProvinceId);

            if (highSchoolFilter.Id != null)
            {
                query = query.Where(q => q.Id, highSchoolFilter.Id);
            }
            if (highSchoolFilter.Name != null)
            {
                query = query.Where(q => q.Name, highSchoolFilter.Name);
            }
            if (highSchoolFilter.Code != null)
            {
                query = query.Where(q => q.Code, highSchoolFilter.Code);
            }
            return(query);
        }
Exemple #6
0
 public async Task <List <HighSchoolBO> > List(HighSchoolBOFilter highSchoolFilter)
 {
     return(await UOW.HighSchoolRepository.List(highSchoolFilter));
 }