private Task <Either <ActionResult, FastTrackViewModel> > BuildViewModel(FastTrack fastTrack)
        {
            return(_releaseRepository
                   .FindOrNotFoundAsync(fastTrack.ReleaseId)
                   .OnSuccessCombineWith(_ => _tableBuilderService.Query(fastTrack.ReleaseId, fastTrack.Query))
                   .OnSuccess(releaseAndResults =>
            {
                var(release, result) = releaseAndResults;
                var viewModel = _mapper.Map <FastTrackViewModel>(fastTrack);
                viewModel.FullTable = result;
                viewModel.Query.PublicationId = release.PublicationId;
                viewModel.ReleaseSlug = release.Slug;

                var latestRelease = _releaseRepository.GetLatestPublishedRelease(release.PublicationId);
                viewModel.LatestData = latestRelease?.Id == release.Id;
                viewModel.LatestReleaseTitle = latestRelease != null
                        ? TimePeriodLabelFormatter.Format(latestRelease.Year, latestRelease.TimeIdentifier,
                                                          FullLabelBeforeYear) : null;
                return viewModel;
            }));
        }