Пример #1
0
        public async Task <VmPage <VmRecommendation> > GetRecommendations(int scenarioId,
                                                                          [FromQuery] RecommendationsApiParams recommendationsParams
                                                                          )
        {
            if (!ModelState.IsValid)
            {
                throw new HttpStatusCodeException(HttpStatusCode.BadRequest, ModelState.Errors());
            }
            if (!_organisationDataProvider.ScenarioIds.Contains(scenarioId))
            {
                throw new HttpStatusCodeException(HttpStatusCode.Unauthorized);
            }

            var validFilters = recommendationsParams.GetValidFilters();

            var sorts = recommendationsParams.GetSorts();

            var results = await _recommendationProductService.GetRecommendations(
                scenarioId,
                recommendationsParams.PageIndex,
                recommendationsParams.PageLimit,
                validFilters,
                sorts
                );

            return(new VmPage <VmRecommendation>
            {
                Items = VmRecommendation.Build(results),
                PageIndex = results.PageIndex,
                PageSize = results.PageSize,
                TotalCount = results.Total
            });
        }
Пример #2
0
        public void PageLimit_ShouldBeGreaterThanOrEqualToOne()
        {
            var recommendationsApiParams = new RecommendationsApiParams {
                PageLimit = -1
            };
            var contextWithInvalidPageLimt = new ValidationContext(recommendationsApiParams, null, null);
            var resultsOfValidation        = new List <ValidationResult>();


            var isValid = Validator.TryValidateObject(recommendationsApiParams,
                                                      contextWithInvalidPageLimt, resultsOfValidation, true);

            Assert.False(isValid);
        }
Пример #3
0
        public async Task <List <string> > GetMultiSelectValues(int scenarioId,
                                                                [FromQuery] RecommendationsApiParams recommendationsParams
                                                                )
        {
            if (!ModelState.IsValid)
            {
                throw new HttpStatusCodeException(HttpStatusCode.BadRequest, ModelState.Errors());
            }
            if (!_organisationDataProvider.ScenarioIds.Contains(scenarioId))
            {
                throw new HttpStatusCodeException(HttpStatusCode.Unauthorized);
            }

            var multiSelectField = recommendationsParams.GetMultiSelectField();

            var results = await _recommendationProductService.GetMultiSelectValues(
                scenarioId,
                multiSelectField
                );

            return(results);
        }