public async Task <IDataResult <string> > GetKlinesAsync(string symbol, KLineIntervalEnum interval, DateTime?startTime = null, DateTime?endTime = null, int limit = 500, CancellationToken ct = default) { try { var parameters = new Dictionary <string, string> { { "symbol", symbol }, { "limit", limit.ToString() }, { "interval", interval.GetDisplayName() }, }; if (startTime.HasValue && endTime.HasValue) { parameters["startTime"] = BinanceTrHelper.GetTimestamp(startTime.Value).ToString(); parameters["endTime"] = BinanceTrHelper.GetTimestamp(endTime.Value).ToString(); } var result = await SendRequestWithoutAuth("/klines", parameters, ct : ct).ConfigureAwait(false); var data = CheckResult(result); if (!BinanceTrHelper.IsJson(data)) { return(new ErrorDataResult <string>(data)); } return(new SuccessDataResult <string>(data)); } catch (Exception ex) { return(new ErrorDataResult <string>(ex.Message)); } }
public async Task <IDataResult <List <AggregateTradesModel> > > GetAggregateTradesAsync(string symbol, DateTime?startTime = null, DateTime?endTime = null, int limit = 500, CancellationToken ct = default) { try { var parameters = new Dictionary <string, string> { { "symbol", symbol }, { "limit", limit.ToString() } }; if (startTime.HasValue && endTime.HasValue) { parameters["startTime"] = BinanceTrHelper.GetTimestamp(startTime.Value).ToString(); parameters["endTime"] = BinanceTrHelper.GetTimestamp(endTime.Value).ToString(); } var result = await SendRequestWithoutAuth("/aggTrades", parameters, ct : ct).ConfigureAwait(false); var data = CheckResult(result); if (!BinanceTrHelper.IsJson(data)) { return(new ErrorDataResult <List <AggregateTradesModel> >(data)); } var model = JsonSerializer.Deserialize <List <AggregateTradesModel> >(result); return(new SuccessDataResult <List <AggregateTradesModel> >(model)); } catch (Exception ex) { return(new ErrorDataResult <List <AggregateTradesModel> >(ex.Message)); } }