public async Task <IActionResult> GetAggregatedCourseDemandList([FromRoute] int ukprn, int?courseId, string location, int?locationRadius, [FromQuery] List <string> routes) { try { var result = await _mediator.Send(new GetAggregatedCourseDemandListQuery { Ukprn = ukprn, CourseId = courseId, LocationName = location, LocationRadius = locationRadius, Routes = routes }); var apiResponse = new GetAggregatedCourseDemandListResponse { TrainingCourses = result.Courses.Select(item => (GetCourseListItem)item), AggregatedCourseDemands = result.AggregatedCourseDemands.Select(response => (GetAggregatedCourseDemandSummary)response), Total = result.Total, TotalFiltered = result.TotalFiltered, Location = result.LocationItem, Routes = result.Routes.Select(c => (GetRoutesListItem)c).ToList() }; return(Ok(apiResponse)); } catch (Exception e) { _logger.LogError(e, $"Error getting aggregated demand list for ukprn:[{ukprn}], courseId:[{courseId}], location:[{location}]"); return(BadRequest()); } }
public async Task Then_Gets_Demands_And_Courses_From_Apis_And_Adds_Courses_To_Cache( GetAggregatedCourseDemandListQuery query, GetStandardsListResponse coursesApiResponse, GetAggregatedCourseDemandListResponse demandApiResponse, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApi, [Frozen] Mock <IEmployerDemandApiClient <EmployerDemandApiConfiguration> > mockDemandApi, [Frozen] Mock <ILocationLookupService> mockLocationLookup, [Frozen] Mock <ICacheStorageService> cacheStorageService, GetAggregatedCourseDemandListQueryHandler handler) { query.LocationName = null; query.LocationRadius = null; cacheStorageService .Setup(client => client.RetrieveFromCache <GetStandardsListResponse>(nameof(GetStandardsListResponse))) .ReturnsAsync((GetStandardsListResponse)null); mockLocationLookup .Setup(service => service.GetLocationInformation(null, default, default))
public async Task <IActionResult> GetAggregatedCourseDemandList(int ukprn, [FromQuery] int?courseId, [FromQuery] double?lat, [FromQuery] double?lon, [FromQuery] int?radius) { var resultFromMediator = await _mediator.Send(new GetAggregatedCourseDemandListQuery { Ukprn = ukprn, Lat = lat, Lon = lon, Radius = radius, CourseId = courseId }); var getAggregatedCourseDemandSummaryResponses = resultFromMediator.AggregatedCourseDemandList.Select(summary => (GetAggregatedCourseDemandSummaryResponse)summary).ToList(); var response = new GetAggregatedCourseDemandListResponse { AggregatedCourseDemandList = getAggregatedCourseDemandSummaryResponses, TotalFiltered = getAggregatedCourseDemandSummaryResponses.Count, Total = resultFromMediator.Total }; return(Ok(response)); }