public async Task <Balance> GetBalanceAsync(CancellationToken cancellationToken = default) { // Sends the request to the Verifalia API var restClient = _restClientFactory.Build(); using var response = await restClient .InvokeAsync(HttpMethod.Get, "credits/balance", cancellationToken : cancellationToken) .ConfigureAwait(false); if (response.StatusCode == HttpStatusCode.OK) { return(await response .Content .DeserializeAsync <Balance>(restClient) .ConfigureAwait(false)); } // An unexpected HTTP status code has been received at this point var responseBody = await response .Content #if NET5_0_OR_GREATER .ReadAsStringAsync(cancellationToken) #else .ReadAsStringAsync() #endif .ConfigureAwait(false); throw new VerifaliaException($"Unexpected HTTP response: {(int)response.StatusCode} {responseBody}"); }