public async Task <IActionResult> Document(string jobCategory) { var contentPageModel = await GetContentPageAsync(jobCategory).ConfigureAwait(false); if (contentPageModel == null) { return(NoContent()); } var jpsToRetrieveHrefs = contentPageModel.Links?.Where(x => x.LinkValue.Key == nameof(JobProfile).ToLower()).Select(z => z.LinkValue.Value.Href); var jobProfiles = jpsToRetrieveHrefs?.Select(x => jobProfilePageContentService.GetByUriAsync(x)); if (jobProfiles != null) { var results = await Task.WhenAll(jobProfiles).ConfigureAwait(false); contentPageModel.JobProfiles = results != null?results.ToList() : null; } if (contentPageModel != null) { var viewModel = mapper.Map <DocumentViewModel>(contentPageModel); viewModel.Breadcrumb = BuildBreadcrumb(contentPageModel); logger.LogInformation($"{nameof(Document)} has succeeded for: {jobCategory}"); return(this.NegotiateContentResult(viewModel)); } logger.LogWarning($"{nameof(Document)} has returned no content for: {jobCategory}"); return(NoContent()); }