Esempio n. 1
0
        public async Task UpdateDataStageAsync(Guid releaseId, Guid releaseStatusId, ReleaseStatusDataStage stage,
                                               ReleaseStatusLogMessage logMessage = null)
        {
            await UpdateRowAsync(releaseId, releaseStatusId, row =>
            {
                row.State.Data = stage;

                if (stage == ReleaseStatusDataStage.Complete)
                {
                    // In case this was a retry, reinstate publishing if possible
                    var(publishing, overall) = GetStatesForReinstatingAfterPossibleRetry(row);
                    row.State.Publishing     = publishing;
                    row.State.Overall        = overall;
                }

                row.AppendLogMessage(logMessage);
                return(row);
            });

            if (stage == ReleaseStatusDataStage.Failed)
            {
                await CancelReleasesWithContentDependency(releaseId, releaseStatusId);
            }

            if (stage == ReleaseStatusDataStage.Complete)
            {
                // In case this was a retry, reinstate publishing of any other releases that were cancelled if possible
                await ReinstateReleasesWithContentDependency(releaseId, releaseStatusId);
            }
        }
 private async Task UpdateStage(IEnumerable <ReleaseStatus> releaseStatuses, ReleaseStatusPublishingStage stage,
                                ReleaseStatusLogMessage logMessage = null)
 {
     foreach (var releaseStatus in releaseStatuses)
     {
         await UpdateStage(releaseStatus, stage, logMessage);
     }
 }
 private async Task UpdateStage(GenerateReleaseContentMessage message, ReleaseStatusContentStage stage,
                                ReleaseStatusLogMessage logMessage = null)
 {
     foreach (var(releaseId, releaseStatusId) in message.Releases)
     {
         await _releaseStatusService.UpdateContentStageAsync(releaseId, releaseStatusId, stage, logMessage);
     }
 }
Esempio n. 4
0
 public async Task UpdateFilesStageAsync(Guid releaseId, Guid releaseStatusId, ReleaseStatusFilesStage stage,
                                         ReleaseStatusLogMessage logMessage = null)
 {
     await UpdateRowAsync(releaseId, releaseStatusId, row =>
     {
         row.State.Files = stage;
         row.AppendLogMessage(logMessage);
         return(row);
     });
 }
Esempio n. 5
0
        public async Task UpdateStagesAsync(Guid releaseId, Guid releaseStatusId, ReleaseStatusContentStage?content = null,
                                            ReleaseStatusDataStage?data             = null, ReleaseStatusFilesStage?files = null,
                                            ReleaseStatusPublishingStage?publishing = null, ReleaseStatusOverallStage?overall = null,
                                            ReleaseStatusLogMessage logMessage      = null)
        {
            await UpdateRowAsync(releaseId, releaseStatusId, row =>
            {
                if (content.HasValue)
                {
                    row.State.Content = content.Value;
                }

                if (data.HasValue)
                {
                    row.State.Data = data.Value;
                }

                if (files.HasValue)
                {
                    row.State.Files = files.Value;
                }

                if (publishing.HasValue)
                {
                    row.State.Publishing = publishing.Value;
                }

                if (overall.HasValue)
                {
                    row.State.Overall = overall.Value;
                }

                row.AppendLogMessage(logMessage);
                return(row);
            });
        }
Esempio n. 6
0
        private async Task UpdateStage(Guid releaseId, Guid releaseStatusId, State state,
                                       ReleaseStatusLogMessage logMessage = null)
        {
            switch (state)
            {
            case State.Started:
                await _releaseStatusService.UpdateStagesAsync(releaseId,
                                                              releaseStatusId,
                                                              logMessage : logMessage,
                                                              publishing : ReleaseStatusPublishingStage.Started,
                                                              content : ReleaseStatusContentStage.Started);

                break;

            case State.Complete:
                await _releaseStatusService.UpdateStagesAsync(releaseId,
                                                              releaseStatusId,
                                                              logMessage : logMessage,
                                                              publishing : ReleaseStatusPublishingStage.Complete,
                                                              content : ReleaseStatusContentStage.Complete);

                break;

            case State.Failed:
                await _releaseStatusService.UpdateStagesAsync(releaseId,
                                                              releaseStatusId,
                                                              logMessage : logMessage,
                                                              publishing : ReleaseStatusPublishingStage.Failed,
                                                              content : ReleaseStatusContentStage.Failed);

                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(state), state, null);
            }
        }
 private async Task UpdateStage(Guid releaseId, Guid releaseStatusId, ReleaseStatusFilesStage stage,
                                ReleaseStatusLogMessage logMessage = null)
 {
     await _releaseStatusService.UpdateFilesStageAsync(releaseId, releaseStatusId, stage, logMessage);
 }
 private async Task UpdateStage(PublishReleaseDataMessage message, ReleaseStatusDataStage stage,
                                ReleaseStatusLogMessage logMessage = null)
 {
     await _releaseStatusService.UpdateDataStageAsync(message.ReleaseId, message.ReleaseStatusId, stage,
                                                      logMessage);
 }
 private async Task UpdateStage(ReleaseStatus releaseStatus, ReleaseStatusPublishingStage stage,
                                ReleaseStatusLogMessage logMessage = null)
 {
     await _releaseStatusService.UpdatePublishingStageAsync(releaseStatus.ReleaseId, releaseStatus.Id, stage,
                                                            logMessage);
 }