private IEnumerable <Trainer> Filter(TrainerFilterData filterData, IEnumerable <Trainer> trainers) { trainers = trainers.Where(trainer => ApplyFilters(filterData) .IsSatisfiedBy(trainer)) .ToList(); return(trainers); }
private PagedTrainersDTO GetTrainers( int pageNumber, int pageSize, IEnumerable <Trainer> trainers, TrainerFilterData filterData) { trainers = Filter(filterData, trainers); var result = GetPagedTrainers(trainers, pageNumber, pageSize); return(result); }
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); }
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); }
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)); } }
private ISpecification <Trainer> ApplyFilters(TrainerFilterData filterData) { return(new TrainerMatchesLocation(filterData.Location) .And(new TrainerMatchesKeywords(filterData.Keywords)) .And(new TrainerMatchesSports(filterData.SportIds))); }