Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }
Exemple #3
0
 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));
     }
 }
Exemple #4
0
 private ISpecification <Training> ApplyFilters(TrainingFilterData filterData)
 {
     return(new TrainingMatchesLevel(filterData.Level)
            .And(new TrainingMatchesTitle(filterData.Title))
            .And(new TrainingHoursInRange(filterData.DateLowerBound, filterData.DateUpperBound)));
 }
Exemple #5
0
        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));
        }