private void UpdateScenarioProgress_MultipleCmdlets(ProgressStage stage, IObject obj) { if (ProgressManager.ExpectsContainsProgress) { if (stage == ProgressStage.PreLoop) { ProgressManager.RemovePreviousOperation(); } else if (stage == ProgressStage.BeforeEach) { if (!ProgressManager.PipeFromPrtgCmdletPostProcessMode) { ProgressManager.UpdateRecordsProcessed(ProgressManager.CurrentRecord, obj); } } else //PostLoop { ProgressManager.CompleteProgress(); } } if (stage == ProgressStage.PostLoop) { ProgressManager.MaybeCompletePreviousProgress(); } }
private void UpdateScenarioProgress_VariableToSingleCmdlet(ProgressStage stage) { if (stage == ProgressStage.PreLoop) { } else if (stage == ProgressStage.BeforeEach) { } else //PostLoop { if (ProgressManager.ExpectsContainsProgress) { ProgressManager.CompleteProgress(); } } }
/// <summary> /// Completes a progress record created in the <see cref="EndProcessing"/> block. /// </summary> /// <param name="complete"></param> protected void CompletePostProcessProgress(bool complete = true) { //If we're a PassThru cmdlet and the next cmdlet is a multi operation cmdlet, we should leave our progress //open so the next cmdlet can complete it var nextCmdlet = ProgressManager.CacheManager.GetNextPrtgCmdlet() as PrtgPostProcessCmdlet; if (nextCmdlet?.ProgressManager?.PostProcessMode() == true) { return; } if (ProgressManager.ProgressEnabled && complete && !ProgressManagerEx.PipeFromSingleVariable) { ProgressManager.CompleteProgress(true, true); } }
private void CompleteDisplayProcessProgress() { if (!ProgressManager.ProgressEnabled) { return; } //If we're Variable -> Action -> Me, we wrote all our progress to the previous cmdlet's CurrentOperation, //so we don't need to complete anything if (!(ProgressManager.PipeFromVariableWithProgress && ProgressManager.PipelineContainsOperation)) { if (ProgressManager.ReadyToComplete()) { ProgressManager.CompleteProgress(true); } if (!ProgressManager.GetRecordsWithVariableProgress) { ProgressManager.MaybeCompletePreviousProgress(); } } }
private void CompleteOperationProgress() { if (ProgressManager.ProgressEnabled) { if (ProgressManager.PipeFromVariableWithProgress && ProgressManager.PipelineIsProgressPure) { ProgressManager.CompleteProgress(); } else { if (ProgressManager.PreviousCmdletIsSelectObject) { ProgressManager.MaybeCompletePreviousProgress(); } else { if (ProgressManager.PipelineUpstreamContainsBlockingCmdlet || ProgressManager.PostProcessMode()) { ProgressManager.CompleteProgress(); } } } } }