示例#1
0
文件: Client.cs 项目: afhacker/quandl
 public string Request(TimeSeriesParameters parameters)
 {
     using (WebClient client = new WebClient())
     {
         return(client.DownloadString(Utility.GetURI(parameters, _baseUrls, _apiKey)));
     }
 }
示例#2
0
文件: Client.cs 项目: afhacker/quandl
        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));
            }
        }
示例#3
0
文件: Client.cs 项目: afhacker/quandl
        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()));
        }
示例#4
0
文件: Client.cs 项目: afhacker/quandl
        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()));
        }
示例#5
0
        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));
        }
示例#6
0
        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);
        }