public async Task <VmPage <VmScenarioSummary> > GetAll([FromQuery] ScenarioSummaryApiParams scenarioSummaryParams) { if (!ModelState.IsValid) { throw new HttpStatusCodeException(HttpStatusCode.BadRequest, ModelState.Errors()); } var validFilters = scenarioSummaryParams.GetValidFilters(); var sorts = scenarioSummaryParams.GetSorts(); var results = await _scenarioWebService.GetAll( validFilters, sorts, scenarioSummaryParams.PageIndex, scenarioSummaryParams.PageLimit ); return(new VmPage <VmScenarioSummary> { Items = VmScenarioSummary.Build(results), PageIndex = results.PageIndex, PageSize = results.PageSize, TotalCount = results.Total }); }
public async Task <VmScenarioSummary> Get(int scenarioId, int clientId = 0) { if (scenarioId <= 0) { throw new HttpStatusCodeException(HttpStatusCode.BadRequest); } if (!_organisationDataProvider.ScenarioIds.Contains(scenarioId)) { throw new HttpStatusCodeException(HttpStatusCode.Unauthorized); } var result = await _scenarioWebService.Get(clientId, scenarioId); return(VmScenarioSummary.Build(result)); }
public void GetReturnsNewPartitionScenarioSummary() { // Arrange var scenarioEntity = new Scenario { ScenarioId = 100, ScenarioName = "ScenarioName", OrganisationId = 111, Week = 100, ScheduleMask = 255, ScheduleWeekMin = 100, ScheduleWeekMax = 107, ScheduleStageMin = 1, ScheduleStageMax = 4, StageMax = 4, StageOffsetMax = 8, PriceFloor = null, MarkdownCountStartWeek = 800, DefaultMarkdownType = 255, AllowPromoAsMarkdown = false, MinimumPromoPercentage = 0M }; var summaryEntity = new ScenarioSummary { Scenario = scenarioEntity, ScenarioId = scenarioEntity.ScenarioId, ScenarioName = scenarioEntity.ScenarioName, Duration = 0, ErrorCount = 0, RecommendationCount = 0, ProductCount = 2, LastRunDate = null, SuccessCount = 0, ProductTotal = 0, AttemptCountAvg = 0, AttemptCountMax = 0, AttemptCountMin = 0, LastFunctionInstanceId = null, FunctionInstanceCount = 1, FunctionInstanceCountTotal = 1, LastGroupTypeId = (int)Common.Enums.FunctionGroupType.Partition, LastGroupTypeName = Common.Enums.FunctionGroupType.Partition.ToString(), ScenarioSummaryStatusTypeName = ScenarioSummaryStatusType.New.ToString(), ScenarioSummaryStatusTypeId = ScenarioSummaryStatusType.New }; var expected = new VmScenarioSummary { CustomerId = scenarioEntity.OrganisationId, ScenarioId = scenarioEntity.ScenarioId, ScenarioName = scenarioEntity.ScenarioName, Status = ScenarioSummaryStatusType.New, Duration = summaryEntity.Duration, PartitionErrorCount = summaryEntity.ErrorCount, PartitionSuccessCount = summaryEntity.SuccessCount, PartitionCount = summaryEntity.FunctionInstanceCount, PartitionTotal = summaryEntity.FunctionInstanceCountTotal, LastRunDate = summaryEntity.LastRunDate, RecommendationCount = summaryEntity.RecommendationCount, TotalNumberRecommendedProducts = summaryEntity.ProductCount, PriceFloor = scenarioEntity.PriceFloor, Week = scenarioEntity.Week, ScheduleMask = scenarioEntity.ScheduleMask, StageMax = scenarioEntity.StageMax, StageOffsetMax = scenarioEntity.StageOffsetMax, ScheduleWeekMin = scenarioEntity.ScheduleWeekMin, ScheduleWeekMax = scenarioEntity.ScheduleWeekMax, ScheduleStageMin = scenarioEntity.ScheduleStageMin, ScheduleStageMax = scenarioEntity.ScheduleStageMax, MarkdownCountStartWeek = scenarioEntity.MarkdownCountStartWeek }; var scenarioRepository = new Mock <IScenarioRepository>(); var scenarioSummaryRepository = new Mock <IScenarioSummaryRepository>(); var scenarioHierarchyFilterRepository = new Mock <IScenarioHierarchyFilterRepository>(); var scenarioProductFilterRepository = new Mock <IScenarioProductFilterRepository>(); var scenarioWebService = new ScenarioWebService(scenarioRepository.Object, scenarioSummaryRepository.Object, scenarioProductFilterRepository.Object, scenarioHierarchyFilterRepository.Object); scenarioSummaryRepository.Setup(x => x.GetSingle(scenarioEntity.OrganisationId, scenarioEntity.ScenarioId)).ReturnsAsync(summaryEntity); var scenarioController = new ScenarioController(_hierarchyServiceMock.Object, scenarioWebService, _recommendationServiceMock.Object, _fileUploadServiceMock.Object, _organisationDataProvider.Object); // Act var actual = scenarioController.Get(scenarioEntity.ScenarioId, scenarioEntity.OrganisationId).Result; // Assert actual.ShouldBeEquivalentTo(expected); }