diff --git a/src/System.Management.Automation/engine/MshCommandRuntime.cs b/src/System.Management.Automation/engine/MshCommandRuntime.cs
index 9d59d02cb30..883c800deab 100644
--- a/src/System.Management.Automation/engine/MshCommandRuntime.cs
+++ b/src/System.Management.Automation/engine/MshCommandRuntime.cs
@@ -390,6 +390,9 @@ public void WriteProgress(
WriteProgress(sourceId, progressRecord, false);
}
+ internal bool IsWriteProgressEnabled()
+ => WriteHelper_ShouldWrite(ProgressPreference, lastProgressContinueStatus);
+
internal void WriteProgress(
Int64 sourceId,
ProgressRecord progressRecord,
@@ -472,6 +475,9 @@ public void WriteDebug(string text)
WriteDebug(new DebugRecord(text));
}
+ internal bool IsWriteDebugEnabled()
+ => WriteHelper_ShouldWrite(DebugPreference, lastDebugContinueStatus);
+
///
/// Display debug information.
///
@@ -566,6 +572,9 @@ public void WriteVerbose(string text)
WriteVerbose(new VerboseRecord(text));
}
+ internal bool IsWriteVerboseEnabled()
+ => WriteHelper_ShouldWrite(VerbosePreference, lastVerboseContinueStatus);
+
///
/// Display verbose information.
///
@@ -660,6 +669,9 @@ public void WriteWarning(string text)
WriteWarning(new WarningRecord(text));
}
+ internal bool IsWriteWarningEnabled()
+ => WriteHelper_ShouldWrite(WarningPreference, lastWarningContinueStatus);
+
///
/// Display warning information.
///
@@ -733,6 +745,9 @@ public void WriteInformation(InformationRecord informationRecord)
WriteInformation(informationRecord, false);
}
+ internal bool IsWriteInformationEnabled()
+ => WriteHelper_ShouldWrite(InformationPreference, lastInformationContinueStatus);
+
///
/// Display tagged object information.
///
diff --git a/src/System.Management.Automation/engine/cmdlet.cs b/src/System.Management.Automation/engine/cmdlet.cs
index ffe13b7304f..db2233d44a9 100644
--- a/src/System.Management.Automation/engine/cmdlet.cs
+++ b/src/System.Management.Automation/engine/cmdlet.cs
@@ -458,6 +458,9 @@ public void WriteVerbose(string text)
}
}
+ internal bool IsWriteVerboseEnabled()
+ => commandRuntime is not MshCommandRuntime mshRuntime || mshRuntime.IsWriteVerboseEnabled();
+
///
/// Display warning information.
///
@@ -495,6 +498,9 @@ public void WriteWarning(string text)
}
}
+ internal bool IsWriteWarningEnabled()
+ => commandRuntime is not MshCommandRuntime mshRuntime || mshRuntime.IsWriteWarningEnabled();
+
///
/// Write text into pipeline execution log.
///
@@ -603,6 +609,9 @@ internal void WriteProgress(
throw new System.NotImplementedException("WriteProgress");
}
+ internal bool IsWriteProgressEnabled()
+ => commandRuntime is not MshCommandRuntime mshRuntime || mshRuntime.IsWriteProgressEnabled();
+
///
/// Display debug information.
///
@@ -646,6 +655,9 @@ public void WriteDebug(string text)
}
}
+ internal bool IsWriteDebugEnabled()
+ => commandRuntime is not MshCommandRuntime mshRuntime || mshRuntime.IsWriteDebugEnabled();
+
///
/// Route information to the user or host.
///
@@ -753,6 +765,9 @@ public void WriteInformation(InformationRecord informationRecord)
}
}
+ internal bool IsWriteInformationEnabled()
+ => commandRuntime is not MshCommandRuntime mshRuntime || mshRuntime.IsWriteInformationEnabled();
+
#endregion Write
#region ShouldProcess