Example #1
0
        public static RootObject GetRandomData(Datacode dc, int numrecords, decimal basevalue, decimal mult, DateTime startdate)
        {
            RootObject ro = new RootObject();

            if (dc != null)
            {
                ro.source_code = dc.ToDatacodeString('.');
            }

            System.Random rnd = new Random();
            ro.id           = rnd.Next(1, 1000000);
            ro.isCacheable  = false;
            ro.column_names = new List <string>();
            ro.column_names.Add(qh.DefaultDateColumnName);
            ro.column_names.Add(qh.DefaultValueColumnName);
            ro.data = new List <List <object> >();
            for (int i = 0; i < numrecords; i++)
            {
                var val  = ((decimal)rnd.NextDouble() * mult) + basevalue;
                var date = new DateTime(startdate.Ticks);
                ro.data.Add(new List <object>(new object[] { date, val }));
                // next date
                startdate = startdate.AddDays(1);
            }
            return(ro);
        }
Example #2
0
        public static RootObject GetRandomData(Datacode dc, int numrecords)
        {
            System.Random rnd   = new Random();
            var           basev = rnd.Next(1, 100);

            return(GetRandomData(dc, numrecords, basev, 1, DateTime.Now));
        }
Example #3
0
 public void Code_InvalidCharacters_Throw()
 {
     var datacode = new Datacode()
     {
         Code = "px" // Should throw
     };
 }
Example #4
0
 public void Code_ValidCharacters_NoThrow()
 {
     var datacode = new Datacode()
     {
         Code = "PX" // Shouldn't throw
     };
 }
Example #5
0
 public void Source_InvalidCharacters_Throw()
 {
     var datacode = new Datacode()
     {
         Source = "praguese" // Should throw
     };
 }
Example #6
0
 public void Source_ValidCharacters_NoThrow()
 {
     var datacode = new Datacode()
     {
         Source = "PRAGUESE" // Shouldn't throw
     };
 }
Example #7
0
 /// <summary>
 /// Add all columns for the supplied datasource
 /// </summary>
 /// <param name="datasource">The datasource</param>
 public void AddColumns(Datacode datasource)
 {
     if (_datacolumns.Length > 0)
     {
         _datacolumns.Append(',');
     }
     _datacolumns.Append(datasource.ToDatacodeString('.'));
 }
Example #8
0
 /// <summary>
 /// Add a column to the collection of columns to be returned
 /// </summary>
 /// <param name="datasource">The datasource</param>
 /// <param name="column">The column to add</param>
 public void AddColumn(Datacode datasource, int column)
 {
     if (_datacolumns.Length > 0)
     {
         _datacolumns.Append(',');
     }
     _datacolumns.Append(string.Format("{0}.{1}", datasource.ToDatacodeString('.'), column));
 }
Example #9
0
        private string CreateRequestString()
        {
            ValidateData();

            StringBuilder sb = new StringBuilder();

            sb.Append(Constants.APIDatasetsAddress)
            .Append('/')
            .Append(Datacode.ToDatacodeString('/'))
            .Append(TypeConverter.FileFormatToString(Format))
            .Append('?');

            if (APIKey != string.Empty)
            {
                sb.Append(Constants.APIAuthorization)
                .Append(APIKey)
                .Append('&');
            }

            sb.Append(Constants.APIFrequency)
            .Append(TypeConverter.FrequencyToString(Frequency))
            .Append('&')
            .Append(Constants.APITransformation)
            .Append(TypeConverter.TransformationsToString(Transformation))
            .Append('&')
            .Append(Constants.APISortOrder)
            .Append(TypeConverter.SortOrdersToString(Sort));

            if (Truncation > 0)
            {
                sb.Append('&')
                .Append(Constants.APITruncation)
                .Append(Truncation);
            }

            if (StartDate != DateTime.MinValue)
            {
                sb.Append('&')
                .Append(Constants.APIStartDate)
                .Append(TypeConverter.DateToString(StartDate));
            }

            if (EndDate != DateTime.MaxValue)
            {
                sb.Append('&')
                .Append(Constants.APIEndDate)
                .Append(TypeConverter.DateToString(EndDate));
            }

            if (Format == FileFormats.CSV)
            {
                sb.Append('&')
                .Append(Constants.APIHeader)
                .Append(!Headers);
            }

            return(sb.ToString());
        }
Example #10
0
        static IQuandlRequest CreateRequest(string sym, Datacode dc, FileFormats form)
        {
            QuandlDownloadRequest qdr = new QuandlDownloadRequest();

            qdr.APIKey   = APIK;
            qdr.Datacode = dc;
            qdr.Format   = form;
            return(qdr);
        }
        /// <summary>
        /// Resets the download request object
        /// </summary>
        public void Reset(bool resetAPIKey)
        {
            if (resetAPIKey)
            {
                APIKey = string.Empty;
            }

            Datacode = new Datacode();
            Format   = FileFormats.JSON;
        }
Example #12
0
        public void GetDatacode_Correct()
        {
            var datacode = new Datacode()
            {
                Source = "PRAGUESE",
                Code   = "PX"
            };

            Assert.AreEqual("PRAGUESE/PX", datacode.ToDatacodeString('/'), "The unique code should be the Source and Code separated by a forward slash");
        }
Example #13
0
        /// <summary>
        /// Resets the download request object
        /// </summary>
        public void Reset(bool resetAPIKey)
        {
            if (resetAPIKey)
            {
                APIKey = string.Empty;
            }

            Datacode       = new Datacode();
            StartDate      = DateTime.MinValue;
            EndDate        = DateTime.MaxValue;
            Frequency      = Frequencies.None;
            Transformation = Transformations.None;
            Truncation     = 0;
            Format         = FileFormats.CSV;
            Headers        = true;
        }
Example #14
0
 static IQuandlRequest CreateRequest(string sym, Datacode dc)
 {
     return(CreateRequest(sym, dc, DefaultQuadlFormat));
 }
Example #15
0
 static string GetData(string sym, Datacode dc, bool checkcache, FileFormats form, DebugDelegate d)
 {
     return(GetData(CreateRequest(sym, dc, form), sym, qh.dc2str(dc), form, checkcache, isCacheCompressed, d));
 }
Example #16
0
 static string GetData(string sym, Datacode dc, bool checkcache, DebugDelegate d)
 {
     return(GetData(sym, dc, checkcache, DefaultQuadlFormat, d));
 }
Example #17
0
 public static RootObject GetRandomData(Datacode dc, int numrecords, decimal basevalue, decimal mult)
 {
     return(GetRandomData(dc, numrecords, basevalue, mult, DateTime.Now));
 }
Example #18
0
 public static RootObject GetRandomData(Datacode dc, qdl_freq freq)
 {
     return(GetRandomData(dc, freq == qdl_freq.Quarterly ? 4 * 5 : 5));
 }
Example #19
0
 public static RootObject GetRandomData(Datacode dc)
 {
     return(GetRandomData(dc, qdl_freq.Quarterly));
 }
Example #20
0
        /// <summary>
        /// get a quandl data set for particular symbol/column/frequency
        /// </summary>
        /// <param name="ds"></param>
        /// <param name="symbol"></param>
        /// <param name="trycache"></param>
        /// <param name="d"></param>
        /// <returns></returns>
        public static RootObject Get(qdl_ds ds, string symbol, string additionaldataset, qdl_freq freq, bool trycache, DebugDelegate d)
        {
            if (_d == null)
            {
                _d = d;
            }
            Datacode   dc  = null;
            string     raw = string.Empty;
            RootObject ro  = null;

            try
            {
                if (string.IsNullOrWhiteSpace(additionaldataset))
                {
                    dc = BuildQdlCode(ds, freq, symbol);
                }
                else
                {
                    dc = BuildQdlCode(ds, freq, symbol, additionaldataset);
                }
            }
            catch (Exception ex)
            {
                debug("Unable to get data, error building dataset: " + qh.dc2str(dc) + " " + symbol + " err: " + ex.Message + ex.StackTrace);
                return(default(RootObject));
            }
            try
            {
                raw = GetData(symbol, dc, trycache, d);
                // verify data retrieved before continuing
                if (string.IsNullOrWhiteSpace(raw))
                {
                    if (isUseFakeDataOnError)
                    {
                        ro = GetRandomData(dc, freq);
                        debug("FakeDataOnError enabled, using: " + ro.data.Count + " randomized data set.");
                        return(ro);
                    }
                    else
                    {
                        debug(symbol + " " + qh.dc2str(dc) + " no data was retrieved.  Retry or contact [email protected]");
                        return(default(RootObject));
                    }
                }
            }
            catch (Exception ex)
            {
                debug("Unable to get data, error retrieving set: " + qh.dc2str(dc) + " " + symbol + " err: " + ex.Message + ex.StackTrace);
                return(default(RootObject));
            }
            try
            {
                ro = json.Deserialize2Root(raw, false, d);
                v(symbol + " " + qh.dc2str(dc) + " got data model containing " + ro.column_names.Count.ToString("N0") + " columns and " + ro.data.Count.ToString("N0") + " records.");
            }
            catch (Exception ex)
            {
                if (isVerboseDebugging)
                {
                    debug("Unable to get data, error parsing set: " + ds + " " + symbol + " err: " + ex.Message + ex.StackTrace);
                    debug(symbol + " " + qh.dc2str(dc) + " errored data set: " + raw);
                }
                else
                {
                    debug("Unable to get data, error parsing set: " + qh.dc2str(dc) + " " + symbol + " err: " + ex.Message + ex.StackTrace);
                }

                return(default(RootObject));
            }
            return(ro);
        }
Example #21
0
 /// <summary>
 /// gets pretty quandl code
 /// </summary>
 /// <param name="dc"></param>
 /// <returns></returns>
 public static string dc2str(Datacode dc)
 {
     return(DataCode2String(dc));
 }
Example #22
0
 /// <summary>
 /// gets pretty quandl code
 /// </summary>
 /// <param name="dc"></param>
 /// <returns></returns>
 public static string DataCode2String(Datacode dc)
 {
     return(dc.ToDatacodeString('.'));
 }