Esempio n. 1
0
        public void On(EventEnvelope <StageFinishedEvent> evnt)
        {
            var project = GetLatestProjectVersion(evnt.Session, evnt.Payload.StageId.SchemaName);
            var stage   = project.Stages.First(x => x.Name == evnt.Payload.StageId.StageId);

            if (stage.TriggerMode == StageTriggerMode.Throttled)
            {
                stage.Release();
            }

            var stageIndex = project.Stages.IndexOf(stage);

            if (stageIndex < project.Stages.Count - 1) //Not a last stage
            {
                var nextStage = project.Stages[stageIndex + 1];

                if (nextStage.TriggerMode == StageTriggerMode.Throttled && !nextStage.Busy)
                {
                    nextStage.Lock();
                    evnt.EnqueueCommand(new TriggerCommand(evnt.PipelineId), DateTime.UtcNow);
                }
            }
        }
 public void On(EventEnvelope <StepWaitingForExternalDependencyEvent> evnt)
 {
     evnt.EnqueueCommand(new ActivateCommand(evnt.PipelineId, evnt.Payload), DateTime.UtcNow + TimeSpan.FromSeconds(30));
 }