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();
}
}