public async Task <Result <ServerHealthInfo> > GetHealth(Action <HealthCheckAction> action, CancellationToken cancellationToken = default) { cancellationToken.RequestCanceled(); var impl = new HealthCheckActionImpl(); action(impl); string url; switch (impl.CheckUpType) { case HealthCheckType.VirtualHost: url = $"api/aliveness-test/{impl.RmqObjectName.ToSanitizedName()}"; break; case HealthCheckType.Node: url = $"api/healthchecks/node/{impl.RmqObjectName}"; break; default: throw new ArgumentOutOfRangeException(); } Result <ServerHealthInfoImpl> result = await Get <ServerHealthInfoImpl>(url, cancellationToken).ConfigureAwait(false); Result <ServerHealthInfo> MapResult(Result <ServerHealthInfoImpl> result) => new ResultHealthCopy(result); return(MapResult(result)); }
public async Task <Result <ServerHealth> > HealthCheck(Action <HealthCheckAction> action, CancellationToken cancellationToken = default) { cancellationToken.RequestCanceled(); var impl = new HealthCheckActionImpl(); action(impl); string url; switch (impl.CheckUpType) { case HealthCheckType.VirtualHost: url = $"api/aliveness-test/{SanitizeVirtualHostName(impl.ResourceName)}"; break; case HealthCheckType.Node: url = $"api/healthchecks/node/{impl.ResourceName}"; break; default: throw new ArgumentOutOfRangeException(); } Result <ServerHealth> result = await Get <ServerHealth>(url, cancellationToken); return(result); }