Esempio n. 1
0
            protected async Task <int> GetTotalPages(
                ExerciseQuery request,
                bool onlyAvailable = true,
                int?dealerId       = default,
                CancellationToken cancellationToken = default)
            {
                var exerciseSpecification = this.GetExerciseSpecification(request);

                var dealerSpecification = this.GetInstructorSpecification(request, dealerId);

                var totalCarAds = await this.exerciseRepository.Total(
                    exerciseSpecification,
                    dealerSpecification,
                    cancellationToken);

                return((int)Math.Ceiling((double)totalCarAds / ExercisesPerPage));
            }
Esempio n. 2
0
            protected async Task <IEnumerable <TOutputModel> > GetExercisesListings <TOutputModel>(
                ExerciseQuery request,
                //bool onlyAvailable = true,
                int?dealerId = default,
                CancellationToken cancellationToken = default)
            {
                var carAdSpecification = this.GetExerciseSpecification(request);

                var dealerSpecification = this.GetInstructorSpecification(request, dealerId);

                var searchOrder = new ExercisesSortOrder(request.SortBy, request.Order);

                var skip = (request.Page - 1) * ExercisesPerPage;

                return(await this.exerciseRepository.GetExercisesListings <TOutputModel>(
                           carAdSpecification,
                           dealerSpecification,
                           searchOrder,
                           skip,
                           take : ExercisesPerPage,
                           cancellationToken));
            }
Esempio n. 3
0
 private Specification <Instructor> GetInstructorSpecification(ExerciseQuery request, int?instructorId)
 => new InstructorByIdSpecification(instructorId)
 .And(new InstructorByNameSpecification(request.Instructor));
Esempio n. 4
0
 private Specification <Exercise> GetExerciseSpecification(ExerciseQuery request)
 => new ExerciseByMuscleSpecification(request.Muscle)
 .And(new ExerciseByComplexitySpecification(request.Complexity));