Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
 private void UpdateScenarioProgress_VariableToSingleCmdlet(ProgressStage stage)
 {
     if (stage == ProgressStage.PreLoop)
     {
     }
     else if (stage == ProgressStage.BeforeEach)
     {
     }
     else //PostLoop
     {
         if (ProgressManager.ExpectsContainsProgress)
         {
             ProgressManager.CompleteProgress();
         }
     }
 }
Beispiel #3
0
        /// <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);
            }
        }
Beispiel #4
0
        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();
                }
            }
        }
Beispiel #5
0
 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();
                 }
             }
         }
     }
 }