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