public async Task Then_Gets_The_Shortlist_From_CourseDeliveryApi_And_Course_From_CoursesApi( GetShortlistForUserQuery query, GetShortlistForUserResponse apiResponse, GetStandardsListResponse cachedCourses, List <GetStandardsListItem> standards, [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockCourseDeliveryApiClient, [Frozen] Mock <ICachedCoursesService> mockCachedCoursesService, GetShortlistForUserQueryHandler handler) { var shortlistFromApi = apiResponse.Shortlist.ToList(); for (var i = 0; i < shortlistFromApi.Count; i++) { standards[i].LarsCode = shortlistFromApi[i].CourseId; } cachedCourses.Standards = standards; mockCourseDeliveryApiClient .Setup(client => client.Get <GetShortlistForUserResponse>( It.Is <GetShortlistForUserRequest>(request => request.ShortlistUserId == query.ShortlistUserId))) .ReturnsAsync(apiResponse); mockCachedCoursesService .Setup(service => service.GetCourses()) .ReturnsAsync(cachedCourses); var result = await handler.Handle(query, CancellationToken.None); result.Shortlist.Should().BeEquivalentTo(apiResponse.Shortlist, options => options.Excluding(item => item.Course)); foreach (var item in result.Shortlist) { item.Course.Should().NotBeNull(); item.Course.Should().BeEquivalentTo(cachedCourses.Standards.Single(listItem => listItem.LarsCode == item.CourseId)); } }
public async Task Then_Gets_The_Shortlist_From_CourseDeliveryApi_And_Course_From_CoursesApi( GetShortlistForUserQuery query, GetShortlistForUserResponse apiResponse, List <GetApprenticeFeedbackResponse> apprenticeFeedbackResponse, GetStandardsListResponse cachedCourses, List <GetStandardsListItem> standards, [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockCourseDeliveryApiClient, [Frozen] Mock <IApprenticeFeedbackApiClient <ApprenticeFeedbackApiConfiguration> > mockApprenticeFeedbackClient, [Frozen] Mock <ICachedCoursesService> mockCachedCoursesService, GetShortlistForUserQueryHandler handler) { var shortlistFromApi = apiResponse.Shortlist.ToList(); for (var i = 0; i < shortlistFromApi.Count; i++) { standards[i].LarsCode = shortlistFromApi[i].CourseId; apprenticeFeedbackResponse[i].Ukprn = shortlistFromApi[i].ProviderDetails.Ukprn; } cachedCourses.Standards = standards; mockCourseDeliveryApiClient .Setup(client => client.Get <GetShortlistForUserResponse>( It.Is <GetShortlistForUserRequest>(request => request.ShortlistUserId == query.ShortlistUserId))) .ReturnsAsync(apiResponse); mockCachedCoursesService .Setup(service => service.GetCourses()) .ReturnsAsync(cachedCourses); mockApprenticeFeedbackClient .Setup(s => s.PostWithResponseCode <IEnumerable <GetApprenticeFeedbackResponse> >(It.Is <PostApprenticeFeedbackRequest> (t => ((PostApprenticeFeedbackRequestData)t.Data).Ukprns.Except(apiResponse.Shortlist.Select(s => s.ProviderDetails.Ukprn)).Count() == 0 && apiResponse.Shortlist.Select(s => s.ProviderDetails.Ukprn).Except(((PostApprenticeFeedbackRequestData)t.Data).Ukprns).Count() == 0 ))).ReturnsAsync(new ApiResponse <IEnumerable <GetApprenticeFeedbackResponse> >(apprenticeFeedbackResponse, HttpStatusCode.OK, string.Empty)); var result = await handler.Handle(query, CancellationToken.None); result.Shortlist.Should().BeEquivalentTo(apiResponse.Shortlist, options => options.Excluding(item => item.Course).Excluding(item => item.ProviderDetails.ApprenticeFeedback)); foreach (var item in result.Shortlist) { item.Course.Should().NotBeNull(); item.Course.Should().BeEquivalentTo(cachedCourses.Standards.Single(listItem => listItem.LarsCode == item.CourseId)); item.ProviderDetails.ApprenticeFeedback.Should().NotBeNull(); item.ProviderDetails.ApprenticeFeedback.Should().BeEquivalentTo(apprenticeFeedbackResponse.First(s => s.Ukprn == item.ProviderDetails.Ukprn)); } }
public async Task <IActionResult> GetAllForUser(Guid userId) { try { var result = await _mediator.Send(new GetShortlistForUserQuery { ShortlistUserId = userId }); var response = new GetShortlistForUserResponse { Shortlist = result.Shortlist.Select(item => (GetShortlistItem)item) }; return(Ok(response)); } catch (Exception e) { _logger.LogError(e, $"Error attempting to get shortlist for user:{userId}"); return(BadRequest()); } }
public async Task <IActionResult> GetShortlistForUser(Guid userId) { try { var queryResult = await _mediator.Send(new GetShortlistForUserQuery { UserId = userId }); var response = new GetShortlistForUserResponse { Shortlist = queryResult.Shortlist.Select(shortlist => (GetShortlistItemResponse)shortlist) }; return(Ok(response)); } catch (Exception e) { _logger.LogError(e, e.Message); return(BadRequest()); } }