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 }); }
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); }
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); }