public Either <ActionResult, Release> GetLatestRelease(Guid publicationId) { var release = _releaseRepository.GetLatestPublishedRelease(publicationId); if (release is null) { return(new NotFoundResult()); } return(release); }
public async Task <Either <ActionResult, PermalinkViewModel> > Create(PermalinkCreateViewModel request) { var publicationId = await _subjectRepository.GetPublicationIdForSubject(request.Query.SubjectId); var release = _releaseRepository.GetLatestPublishedRelease(publicationId); if (release == null) { return(new NotFoundResult()); } return(await Create(release.Id, request)); }
public async Task <Either <ActionResult, TableBuilderResultViewModel> > Query( ObservationQueryContext queryContext, CancellationToken cancellationToken = default) { var publicationId = await _subjectRepository.GetPublicationIdForSubject(queryContext.SubjectId); var release = _releaseRepository.GetLatestPublishedRelease(publicationId); if (release == null) { return(new NotFoundResult()); } return(await Query(release, queryContext, cancellationToken)); }
public async Task <bool> IsSubjectForLatestPublishedRelease(Guid subjectId) { var publicationId = await GetPublicationIdForSubject(subjectId); var latestRelease = _releaseRepository.GetLatestPublishedRelease(publicationId); if (latestRelease == null) { return(false); } return(_context .ReleaseSubject .Any(r => r.ReleaseId == latestRelease.Id && r.SubjectId == subjectId)); }
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; })); }