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}"; } }