示例#1
0
        public async Task <ApiResponse <Fork> > GetNodeForkAsync(CancellationToken cancellationToken)
        {
            string uri = "node/fork";

            using HttpResponseMessage httpResponse =
                      await _httpClient.GetAsync(uri, HttpCompletionOption.ResponseHeadersRead, cancellationToken);

            httpResponse.EnsureSuccessStatusCode(); // throws if not 200-299
            await using Stream contentStream = await httpResponse.Content.ReadAsStreamAsync();

            ForkInformation content =
                await JsonSerializer.DeserializeAsync <ForkInformation>(contentStream, _jsonSerializerOptions,
                                                                        cancellationToken);

            return(ApiResponse.Create((StatusCode)(int)httpResponse.StatusCode, content.Fork));
        }
        public async Task <IActionResult> GetAsync(CancellationToken cancellationToken)
        {
            if (_logger.IsDebug())
            {
                LogDebug.NodeForkRequested(_logger, null);
            }

            ApiResponse <Fork> apiResponse = await _beaconNode.GetNodeForkAsync(cancellationToken).ConfigureAwait(false);

            if (apiResponse.StatusCode == Core2.Api.StatusCode.Success)
            {
                ForkInformation forkInformation = new ForkInformation(0, apiResponse.Content);
                return(Ok(forkInformation));
            }

            return(Problem("Beacon node internal error.", statusCode: (int)apiResponse.StatusCode));
        }