示例#1
0
 private IEnumerable <Trainer> Filter(TrainerFilterData filterData, IEnumerable <Trainer> trainers)
 {
     trainers = trainers.Where(trainer => ApplyFilters(filterData)
                               .IsSatisfiedBy(trainer))
                .ToList();
     return(trainers);
 }
示例#2
0
        private PagedTrainersDTO GetTrainers(
            int pageNumber, int pageSize, IEnumerable <Trainer> trainers, TrainerFilterData filterData)
        {
            trainers = Filter(filterData, trainers);
            var result = GetPagedTrainers(trainers, pageNumber, pageSize);

            return(result);
        }
示例#3
0
        public async Task <PagedTrainersDTO> GetFavouriteTrainers(
            int pageNumber,
            int pageSize,
            string userId,
            TrainerFilterData filterData)
        {
            var trainers = await _trainerRepository.GetFavouriteTrainers(userId);

            var result = GetTrainers(pageNumber, pageSize, trainers, filterData);

            return(result);
        }
示例#4
0
        public async Task <PagedTrainersDTO> GetAllTrainers(
            int pageNumber,
            int pageSize,
            string userId,
            TrainerFilterData filterData)
        {
            IEnumerable <Trainer> trainers;

            trainers = await _trainerRepository.GetAllTrainers(userId);

            var result = GetTrainers(pageNumber, pageSize, trainers, filterData);

            return(result);
        }
示例#5
0
 public async Task <ActionResult <PagedTrainersDTO> > GetFavouriteTrainers(
     [FromQuery] TrainerFilterData filterData,
     [FromQuery] string userId,
     [FromQuery] int pageNumber = 1,
     [FromQuery] int pageSize   = 3)
 {
     try
     {
         return(Ok(await _trainerService.GetFavouriteTrainers(pageNumber, pageSize, userId, filterData)));
     }
     catch (Exception exception)
     {
         return(BadRequest(exception.Message));
     }
 }
示例#6
0
 private ISpecification <Trainer> ApplyFilters(TrainerFilterData filterData)
 {
     return(new TrainerMatchesLocation(filterData.Location)
            .And(new TrainerMatchesKeywords(filterData.Keywords))
            .And(new TrainerMatchesSports(filterData.SportIds)));
 }