public async Task PublishMethodologyFilesIfApplicableForRelease(Guid releaseId) { var methodologies = await _methodologyService.GetLatestByRelease(releaseId); if (methodologies.Any()) { // Publish the files of the latest methodologies of this release that // aren't already accessible but depended on this release being published, // since those methodologies will be published for the first time with this release var release = await _releaseService.Get(releaseId); var firstRelease = !await _publicationService.IsPublicationPublished(release.PublicationId); foreach (var methodology in methodologies) { if (methodology.Approved) { // Include methodologies scheduled immediately that will now be accessible // because this Publication's first release is being published var firstReleaseAndMethodologyScheduledImmediately = firstRelease && methodology.ScheduledForPublishingImmediately; // Include methodologies scheduled to be published with this release var methodologyScheduledWithThisRelease = methodology.ScheduledForPublishingWithRelease && methodology.ScheduledWithReleaseId == releaseId; if (firstReleaseAndMethodologyScheduledImmediately || methodologyScheduledWithThisRelease) { await PublishMethodologyFiles(methodology); } } } } }
public async Task <ActionResult <ReleaseViewModel> > GetLatestRelease(string publicationSlug) { return(await _releaseService.Get(publicationSlug) .HandleFailuresOrOk()); }