private IEnumerable <Training> Filter(TrainingFilterData filterData, IEnumerable <Training> trainings) { if (filterData.DateLowerBound != null && filterData.DateLowerBound.Value.TimeOfDay.TotalHours == 0) { filterData.DateLowerBound = ((DateTime)filterData.DateLowerBound).AddHours(12); } if (filterData.DateLowerBound != null && filterData.DateLowerBound.Value.TimeOfDay.TotalHours == 12) { filterData.DateLowerBound = ((DateTime)filterData.DateLowerBound).AddHours(-12); } if (filterData.DateUpperBound != null && filterData.DateUpperBound.Value.TimeOfDay.TotalHours == 0) { filterData.DateUpperBound = ((DateTime)filterData.DateUpperBound).AddHours(12); } if (filterData.DateUpperBound != null && filterData.DateUpperBound.Value.TimeOfDay.TotalHours == 12) { filterData.DateUpperBound = ((DateTime)filterData.DateUpperBound).AddHours(-12); } trainings = trainings.Where(training => ApplyFilters(filterData) .IsSatisfiedBy(training)) .ToList(); return(trainings); }
public async Task <IEnumerable <TrainingDTO> > GetClubTrainings(int clubId, TrainingFilterData filterData) { var trainings = await _trainingRepository.GetClubTrainings(clubId); trainings = Filter(filterData, trainings); return(_mapper.Map <IEnumerable <TrainingDTO> >(trainings)); }
public async Task <ActionResult <IEnumerable <TrainingDTO> > > GetTrainerTrainings( [FromQuery] TrainingFilterData filterData, int id) { try { return(Ok(await _trainingService.GetTrainerTrainings(id, filterData))); } catch (Exception exception) { return(BadRequest(exception.Message)); } }
private ISpecification <Training> ApplyFilters(TrainingFilterData filterData) { return(new TrainingMatchesLevel(filterData.Level) .And(new TrainingMatchesTitle(filterData.Title)) .And(new TrainingHoursInRange(filterData.DateLowerBound, filterData.DateUpperBound))); }
public async Task <IEnumerable <TrainingDTO> > GetReservedTrainings(string userId, TrainingFilterData filterData) { var trainings = await _trainingRepository.GetReservedTrainings(userId); trainings = Filter(filterData, trainings); return(_mapper.Map <IEnumerable <TrainingDTO> >(trainings)); }