Beispiel #1
0
        public async Task <PaginatedResult <Trade> > GetTradesAsync(string productId, int?after = null, CancellationToken cancellationToken = default)
        {
            using var client = _factory.CreateClient(ClientNames.MarketData);

            var requestUriBuilder = new StringBuilder($"/products/{productId}/trades");

            var queryString = HttpUtility.ParseQueryString(string.Empty);

            if (after.HasValue)
            {
                queryString.Add("after", $"{after.Value}");
            }

            if (queryString.HasKeys())
            {
                requestUriBuilder.Append($"?{queryString}");
            }

            var response = await client.GetAsync(requestUriBuilder.ToString(), cancellationToken);

            response.EnsureSuccessStatusCode();

            var trades = await JsonSerializer.DeserializeAsync <IReadOnlyCollection <Trade> >(await response.Content.ReadAsStreamAsync(cancellationToken), _options, cancellationToken);

            return(PaginatedResultFactory.Create(response.Headers, trades));
        }
Beispiel #2
0
        public async Task <PaginatedResult <Order>?> ListOrdersAsync(CancellationToken cancellationToken = default)
        {
            using var client = _factory.CreateClient(ClientNames.TradingClient);

            var response = await client.GetAsync(new Uri("/orders", UriKind.Relative), cancellationToken);

            response.EnsureSuccessStatusCode();

            var json = await response.Content.ReadAsStringAsync(cancellationToken);

            return(PaginatedResultFactory.Create(response.Headers, JsonSerializer.Deserialize <IReadOnlyCollection <Order> >(json, _serializerOptions)));
        }