public string Request(TimeSeriesParameters parameters) { using (WebClient client = new WebClient()) { return(client.DownloadString(Utility.GetURI(parameters, _baseUrls, _apiKey))); } }
public byte[] DownloadSeries(TimeSeriesParameters parameters, DownloadType downloadType) { using (WebClient client = new WebClient()) { string url = $"{Utility.GetURI(parameters, _baseUrls, _apiKey)}&download_type={Utility.GetDownloadType(downloadType)}"; return(client.DownloadData(url)); } }
public async Task <DataSet> GetDataSetAsync(TimeSeriesParameters parameters) { parameters.ReturnFormat = ReturnFormat.JSON; string content = await RequestAsync(parameters); JObject jContent = JObject.Parse(content); string dataSetKey = jContent.ContainsKey("dataset_data") ? "dataset_data" : "dataset"; return(JsonConvert.DeserializeObject <DataSet>(jContent[dataSetKey].ToString())); }
public async Task <DatabaseMetaData> GetDatabaseMetaDataAsync(TimeSeriesParameters parameters) { parameters.ReturnFormat = ReturnFormat.JSON; parameters.Metadata = true; string content = await RequestAsync(parameters); JObject jContent = JObject.Parse(content); return(JsonConvert.DeserializeObject <DatabaseMetaData>(jContent["database"].ToString())); }
private static void GetTimeSeriesData() { TimeSeriesParameters parameters = new TimeSeriesParameters(); Console.WriteLine("Database Code *:"); parameters.DatabaseCode = Console.ReadLine(); Console.WriteLine("Dataset Code *:"); parameters.DatasetCode = Console.ReadLine(); Console.WriteLine("Return Format (JSON, CSV, or XML) *:"); parameters.ReturnFormat = GetEnum <ReturnFormat>(); Console.WriteLine("Limit:"); parameters.Limit = ParseInt(Console.ReadLine()); Console.WriteLine("Column Index:"); parameters.ColumnIndex = ParseInt(Console.ReadLine()); Console.WriteLine("Collapse (Annual, Quarterly, Monthly, Weekly, Daily):"); parameters.Collapse = GetEnum <Collapse>(Collapse.None); Console.WriteLine("Transform (Diff, Cumul, Normalize, RDiff, RDiffFrom):"); parameters.Transform = GetEnum <Transform>(Transform.None); Console.WriteLine("Meta Data (Y / N):"); parameters.Metadata = ParseBool(Console.ReadLine()); Console.WriteLine("Order (Ascending / Descending):"); parameters.Order = GetEnum <Order>(Order.Ascending); Console.WriteLine("Start Date (YYYY-MM-dd):"); parameters.StartDate = ParseDate(Console.ReadLine()); Console.WriteLine("End Date (YYYY-MM-dd):"); parameters.EndDate = ParseDate(Console.ReadLine()); Console.WriteLine("Result:"); Console.WriteLine(_client.Request(parameters)); }
public static Uri GetURI(TimeSeriesParameters parameters, BaseUrls baseUrls, string apiKey) { string url = $"{baseUrls.TimeSeriesUrl}{parameters.DatabaseCode}"; if (!string.IsNullOrEmpty(parameters.DatasetCode)) { if (parameters.Metadata.HasValue) { url += parameters.Metadata.Value ? $"/{parameters.DatasetCode}/metadata" : $"/{parameters.DatasetCode}/data"; } else { url += $"/{parameters.DatasetCode}"; } } url += $".{GetReturnFormat(parameters.ReturnFormat)}"; UriBuilder uriBuilder = new UriBuilder(url); string uriQuery = $"api_key={apiKey}"; if (parameters.Limit.HasValue) { uriQuery += $"&limit={parameters.Limit}"; } if (parameters.ColumnIndex.HasValue) { uriQuery += $"&column_index={parameters.ColumnIndex}"; } if (parameters.StartDate.HasValue) { uriQuery += $"&start_date={parameters.StartDate.Value.ToString("yyyy-MM-dd")}"; } if (parameters.EndDate.HasValue) { uriQuery += $"&end_date={parameters.EndDate.Value.ToString("yyyy-MM-dd")}"; } if (parameters.Order != Order.None) { uriQuery += $"&order={GetOrder(parameters.Order)}"; } if (parameters.Collapse != Collapse.None) { uriQuery += $"&collapse={GetCollapse(parameters.Collapse)}"; } if (parameters.Transform != Transform.None) { uriQuery += $"&transform={GetTransform(parameters.Transform)}"; } uriBuilder.Query = uriQuery; return(uriBuilder.Uri); }