using ZB.MOM.WW.MxGateway.Contracts.Proto;
namespace ZB.MOM.WW.MxGateway.Client;
/// Extension methods for MxStatusProxy values.
public static class MxStatusProxyExtensions
{
///
/// Returns whether the status indicates success, which the wire contract defines as
/// . The raw Success member is a verbatim COM
/// diagnostic, not a boolean, so it never participates in the verdict.
///
/// The status to check.
/// if the status indicates success; otherwise .
public static bool IsSuccess(this MxStatusProxy status)
{
ArgumentNullException.ThrowIfNull(status);
return status.Category is MxStatusCategory.Ok;
}
/// Returns a formatted summary of the status for diagnostic output.
/// The status to summarize.
/// A formatted diagnostic summary string.
public static string ToDiagnosticSummary(this MxStatusProxy status)
{
ArgumentNullException.ThrowIfNull(status);
string diagnosticText = string.IsNullOrWhiteSpace(status.DiagnosticText)
? "no diagnostic text"
: status.DiagnosticText;
return $"success={status.Success}; {status.Category} by {status.DetectedBy}; detail={status.Detail}; {diagnosticText}";
}
}