public async Task <GetShortlistForUserResult> Handle(GetShortlistForUserQuery request, CancellationToken cancellationToken) { var apiShortlistRequest = new GetShortlistForUserRequest(request.ShortlistUserId); var shortListTask = _courseDeliveryApiClient.Get <GetShortlistForUserResponse>(apiShortlistRequest); var coursesTask = _cachedCoursesService.GetCourses(); await Task.WhenAll(shortListTask, coursesTask); var apprenticeFeedbackTasks = new List <Task <GetApprenticeFeedbackResponse> >(); var shortlist = shortListTask.Result.Shortlist.ToList(); var ukprns = shortlist.Select(s => s.ProviderDetails.Ukprn); var apprenticeFeedbackRatings = await _apprenticeFeedbackApiClient. PostWithResponseCode <IEnumerable <GetApprenticeFeedbackResponse> >( new PostApprenticeFeedbackRequest { Data = new PostApprenticeFeedbackRequestData { Ukprns = ukprns } }); foreach (var item in shortlist) { item.Course = coursesTask.Result.Standards.FirstOrDefault(listItem => listItem.LarsCode == item.CourseId); if (apprenticeFeedbackRatings.StatusCode == System.Net.HttpStatusCode.OK) { item.ProviderDetails.ApprenticeFeedback = apprenticeFeedbackRatings.Body.FirstOrDefault(s => s.Ukprn == item.ProviderDetails.Ukprn); } } return(new GetShortlistForUserResult { Shortlist = shortlist }); }
public async Task <GetShortlistForUserResult> Handle(GetShortlistForUserQuery request, CancellationToken cancellationToken) { var apiShortlistRequest = new GetShortlistForUserRequest(request.ShortlistUserId); var shortListTask = _courseDeliveryApiClient.Get <GetShortlistForUserResponse>(apiShortlistRequest); var coursesTask = _cachedCoursesService.GetCourses(); await Task.WhenAll(shortListTask, coursesTask); var shortlist = shortListTask.Result.Shortlist.ToList(); foreach (var item in shortlist) { item.Course = coursesTask.Result.Standards.FirstOrDefault(listItem => listItem.LarsCode == item.CourseId); } return(new GetShortlistForUserResult { Shortlist = shortlist }); }
public void Then_Builds_Url(Guid shortlistUserId) { var actual = new GetShortlistForUserRequest(shortlistUserId); actual.GetUrl.Should().Be($"api/shortlist/users/{shortlistUserId}"); }