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); }
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)); }
public void Code_InvalidCharacters_Throw() { var datacode = new Datacode() { Code = "px" // Should throw }; }
public void Code_ValidCharacters_NoThrow() { var datacode = new Datacode() { Code = "PX" // Shouldn't throw }; }
public void Source_InvalidCharacters_Throw() { var datacode = new Datacode() { Source = "praguese" // Should throw }; }
public void Source_ValidCharacters_NoThrow() { var datacode = new Datacode() { Source = "PRAGUESE" // Shouldn't throw }; }
/// <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('.')); }
/// <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)); }
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()); }
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; }
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"); }
/// <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; }
static IQuandlRequest CreateRequest(string sym, Datacode dc) { return(CreateRequest(sym, dc, DefaultQuadlFormat)); }
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)); }
static string GetData(string sym, Datacode dc, bool checkcache, DebugDelegate d) { return(GetData(sym, dc, checkcache, DefaultQuadlFormat, d)); }
public static RootObject GetRandomData(Datacode dc, int numrecords, decimal basevalue, decimal mult) { return(GetRandomData(dc, numrecords, basevalue, mult, DateTime.Now)); }
public static RootObject GetRandomData(Datacode dc, qdl_freq freq) { return(GetRandomData(dc, freq == qdl_freq.Quarterly ? 4 * 5 : 5)); }
public static RootObject GetRandomData(Datacode dc) { return(GetRandomData(dc, qdl_freq.Quarterly)); }
/// <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); }
/// <summary> /// gets pretty quandl code /// </summary> /// <param name="dc"></param> /// <returns></returns> public static string dc2str(Datacode dc) { return(DataCode2String(dc)); }
/// <summary> /// gets pretty quandl code /// </summary> /// <param name="dc"></param> /// <returns></returns> public static string DataCode2String(Datacode dc) { return(dc.ToDatacodeString('.')); }