public static string ToIntervalString(this TickerInterval interval) { switch (interval) { case TickerInterval.FiveMinutes: return("5m"); case TickerInterval.TenMinutes: return("10m"); case TickerInterval.FifteenMinutes: return("15m"); case TickerInterval.ThirtyMinutes: return("30m"); case TickerInterval.FourtyFiveMinutes: return("45m"); case TickerInterval.OneHour: return("1h"); case TickerInterval.TwoHours: return("2h"); case TickerInterval.ThreeHours: return("3h"); case TickerInterval.SixHours: return("6h"); case TickerInterval.TwelveHours: return("12h"); case TickerInterval.TwentyFourHours: return("24h"); case TickerInterval.OneDay: return("1d"); case TickerInterval.SevenDays: return("7d"); case TickerInterval.FourteenDays: return("14d"); case TickerInterval.ThirtyDays: return("30d"); case TickerInterval.NinetyDays: return("90d"); case TickerInterval.ThreeHundredSixtyFiveDays: return("365d"); } return(null); }
/// <summary> /// Get historical tickers for specific coin /// </summary> /// <param name="id">id of the coin</param> /// <param name="startTime">start point for historical data</param> /// <param name="endTime">end point for historical data</param> /// <param name="limit">limit of result rows (max 5000)</param> /// <param name="quote">returned data quote (available values: usd, btc)</param> /// <param name="interval">returned points interval</param> /// <returns></returns> public async Task <CoinPaprikaEntity <List <HistoricalTickerInfo> > > GetHistoricalTickerForIdAsync(string id, DateTimeOffset startTime, DateTimeOffset endTime = default, int limit = 1000, string quote = "USD", TickerInterval interval = TickerInterval.FifteenMinutes) { if (string.IsNullOrWhiteSpace(id)) { throw new NotSupportedException("id must be defined"); } if (limit < 1 || limit > 5000) { throw new ArgumentOutOfRangeException(nameof(limit), "limit must be between 1 and 250"); } var client = BaseClient.GetClient(); var requestUrl = $"{_apiBaseUrl}/tickers/{id}/historical". AddParameterToUrl("start", startTime.ToUnixTimeSeconds()). AddParameterToUrl("end", endTime == default ? DateTimeOffset.Now.ToUnixTimeSeconds() : endTime.ToUnixTimeSeconds()). AddParameterToUrl("limit", limit). AddParameterToUrl("quote", quote). AddParameterToUrl("interval", interval.ToIntervalString()); var request = new HttpRequestMessage() { Method = HttpMethod.Get, RequestUri = new Uri(requestUrl) }; var response = await client.SendAsync(request).ConfigureAwait(false); //var json = await response.Content.ReadAsStringAsync(); return(new CoinPaprikaEntity <List <HistoricalTickerInfo> >(response, false, !response.IsSuccessStatusCode)); }