public override void End()

in src/PSRule/Pipeline/AssertPipeline.cs [121:165]


            public override void End()
            {
                _Formatter.End(_TotalCount, _FailCount, _ErrorCount);
                base.End();
                try
                {
                    if (_ErrorCount > 0)
                    {
                        base.WriteError(new ErrorRecord(
                            new FailPipelineException(PSRuleResources.RuleErrorPipelineException),
                            "PSRule.Error",
                            ErrorCategory.InvalidOperation,
                            null));
                    }
                    else if (_FailCount > 0 && _Level == SeverityLevel.Error)
                    {
                        base.WriteError(new ErrorRecord(
                            new FailPipelineException(PSRuleResources.RuleFailPipelineException),
                            "PSRule.Fail",
                            ErrorCategory.InvalidData,
                            null));
                    }
                    else if (_PSError)
                    {
                        base.WriteError(new ErrorRecord(
                            new FailPipelineException(PSRuleResources.ErrorPipelineException),
                            "PSRule.Error",
                            ErrorCategory.InvalidOperation,
                            null));
                    }
                    if (_FailCount > 0 && _Level == SeverityLevel.Warning)
                        base.WriteWarning(PSRuleResources.RuleFailPipelineException);

                    if (_FailCount > 0 && _Level == SeverityLevel.Information)
                        base.WriteHost(new HostInformationMessage() { Message = PSRuleResources.RuleFailPipelineException });

                    if (_Results != null && _CmdletContext != null)
                        _CmdletContext.SessionState.PSVariable.Set(_ResultVariableName, _Results.ToArray());
                }
                finally
                {
                    if (_InnerWriter != null)
                        _InnerWriter.End();
                }
            }