public AccountsController(DataReaderSettings dataReaderSettings, IMarginTradingAccountsRepository accountsRepository, IMarginTradingAccountStatsRepository accountStatsRepository) { _dataReaderSettings = dataReaderSettings; _accountsRepository = accountsRepository; _accountStatsRepository = accountStatsRepository; }
public void ConvertJson2Xml_HelloWorld_RoundTripsJsonToXmlAndBack() { // input from example at http://xmlspec.org/#/specification var inputJson = @"{ ""hello"" : ""world"" }"; var expectedXml = @"<object><hello>world</hello></object>"; var jsonTokenizer = new JsonReader.JsonTokenizer(); var tokens1 = jsonTokenizer.GetTokens(inputJson); var writerSettings = new DataWriterSettings { PrettyPrint = false }; var xmlFormatter = new TransformFormatter <ModelTokenType, MarkupTokenType>(new XmlWriter.XmlFormatter(writerSettings), new XmlWriter.XmlOutTransformer(writerSettings)); var actualXml = xmlFormatter.Format(tokens1); Assert.Equal(expectedXml, actualXml); var expectedJson = @"{""hello"":""world""}"; var readerSettings = new DataReaderSettings(writerSettings.Resolver); var xmlTokenizer = new TransformTokenizer <MarkupTokenType, ModelTokenType>(new XmlReader.XmlTokenizer(), new XmlReader.XmlInTransformer(readerSettings)); var tokens2 = xmlTokenizer.GetTokens(actualXml); var jsonFormatter = new JsonWriter.JsonFormatter(new DataWriterSettings { PrettyPrint = false }); var actualJson = jsonFormatter.Format(tokens2); Assert.Equal(expectedJson, actualJson); }
public Application(IRabbitMqService rabbitMqService, DataReaderSettings dataReaderSettings, IMarginTradingSettingsCacheService marginTradingSettingsCacheService) { _rabbitMqService = rabbitMqService; _dataReaderSettings = dataReaderSettings; _marginTradingSettingsCacheService = marginTradingSettingsCacheService; ; }
bool IDataFilter <TTokenType> .TryRead(DataReaderSettings settings, IStream <Token <TTokenType> > tokens, out object value) { TResult result; bool success = this.TryRead(settings, tokens, out result); value = result; return(success); }
/// <summary> /// Ctor /// </summary> /// <param name="settings"></param> public XmlInTransformer(DataReaderSettings settings) { if (settings == null) { throw new ArgumentNullException("settings"); } this.Settings = settings; }
public MarginTradingEnabledFilter( DataReaderSettings dataReaderSettings, IMarginTradingSettingsCacheService marginTradingSettingsCacheService, ICacheProvider cacheProvider, ILog log) { _dataReaderSettings = dataReaderSettings; _marginTradingSettingsCacheService = marginTradingSettingsCacheService; _cacheProvider = cacheProvider; _log = log; }
/// <summary> /// Ctor /// </summary> /// <param name="settings"></param> /// <param name="contentTypes"></param> public JsonReader(DataReaderSettings settings, params string[] contentTypes) : base(settings != null ? settings : new DataReaderSettings()) { if (contentTypes == null) { throw new NullReferenceException("contentTypes"); } // copy values so cannot be modified from outside this.ContentTypes = new string[contentTypes.Length]; Array.Copy(contentTypes, this.ContentTypes, contentTypes.Length); }
public void Read_NullValueTypes() { var input = "{a:null}"; var settings = new DataReaderSettings(); settings.AllowNullValueTypes = true; var reader = new JsonReader(settings); var actual = reader.Read <ClassA>(input); Assert.Equal(default(int), actual.a); }
public RestRequestAsyncHandle ContinueWith <TResult>(Action <TResult> callback) { return(this.client.ExecuteAsync(this.request, response => { var settings = new DataReaderSettings(); var reader = new JsonReader(settings); var data = reader.Read <TResult>(response.Content); if (response.StatusCode != HttpStatusCode.OK) { throw new Exception(response.ErrorMessage); } else { callback(data); } })); }
public override bool TryRead(DataReaderSettings settings, IStream <Token <ModelTokenType> > tokens, out DateTime value) { var token = tokens.Peek(); if (token == null || token.TokenType != ModelTokenType.Primitive || !(token.Value is string)) { value = default(DateTime); return(false); } if (!TryParseDate(token.ValueAsString(), out value)) { value = default(DateTime); return(false); } tokens.Pop(); return(true); }
public void ConvertJson2Xml_ArrayAsProperty_RoundTripsJsonToXmlAndBack() { // input from example at http://xmlspec.org/#/specification var inputJson = @"{ ""BSON"" : [ ""awesome"", 5.05, 1986 ] }"; var expectedXml = @"<object><BSON><item>awesome</item><item>5.05</item><item>1986</item></BSON></object>"; var jsonTokenizer = new JsonReader.JsonTokenizer(); var tokens1 = jsonTokenizer.GetTokens(inputJson); var writerSettings = new DataWriterSettings { PrettyPrint = false }; var xmlFormatter = new TransformFormatter <ModelTokenType, MarkupTokenType>(new XmlWriter.XmlFormatter(writerSettings), new XmlWriter.XmlOutTransformer(writerSettings)); var actualXml = xmlFormatter.Format(tokens1); Assert.Equal(expectedXml, actualXml); var expectedJson = @"{""BSON"":[""awesome"",5.05,1986]}"; var readerSettings = new DataReaderSettings(writerSettings.Resolver); var xmlTokenizer = new TransformTokenizer <MarkupTokenType, ModelTokenType>(new XmlReader.XmlTokenizer(), new XmlReader.XmlInTransformer(readerSettings)); var tokens2 = xmlTokenizer.GetTokens(actualXml); var jsonFormatter = new JsonWriter.JsonFormatter(new DataWriterSettings { PrettyPrint = false }); var actualJson = jsonFormatter.Format(tokens2); Assert.Equal(expectedJson, actualJson); }
public void ConvertJson2Xml_BooleanValue_RoundTripsJsonToXmlAndBack() { // input from example at http://codebetter.com/blogs/karlseguin/archive/2010/03/05/xml-serialization.aspx var inputJson = @"{valid:true}"; var expectedXml = @"<object> <valid>true</valid> </object>"; var jsonTokenizer = new JsonReader.JsonTokenizer(); var tokens1 = jsonTokenizer.GetTokens(inputJson); var writerSettings = new DataWriterSettings { PrettyPrint = true }; var xmlFormatter = new TransformFormatter <ModelTokenType, MarkupTokenType>(new XmlWriter.XmlFormatter(writerSettings), new XmlWriter.XmlOutTransformer(writerSettings)); var actualXml = xmlFormatter.Format(tokens1); Assert.Equal(expectedXml, actualXml); var expectedJson = @"{ ""valid"" : ""true"" }"; var readerSettings = new DataReaderSettings(writerSettings.Resolver); var xmlTokenizer = new TransformTokenizer <MarkupTokenType, ModelTokenType>(new XmlReader.XmlTokenizer(), new XmlReader.XmlInTransformer(readerSettings)); var tokens2 = xmlTokenizer.GetTokens(actualXml); var jsonFormatter = new JsonWriter.JsonFormatter(new DataWriterSettings { PrettyPrint = true }); var actualJson = jsonFormatter.Format(tokens2); Assert.Equal(expectedJson, actualJson); }
/// <summary> /// Ctor /// </summary> /// <param name="settings"></param> public ModelAnalyzer(DataReaderSettings settings) { if (settings == null) { throw new ArgumentNullException("settings"); } this.Settings = settings; var filters = new List <IDataFilter <ModelTokenType> >(); if (settings.Filters != null) { foreach (var filter in settings.Filters) { if (filter != null) { filters.Add(filter); } } } this.Filters = filters; this.Coercion = new TypeCoercionUtility(settings, settings.AllowNullValueTypes); }
public abstract bool TryRead(DataReaderSettings settings, IStream <Token <TTokenType> > tokens, out TResult value);
/// <summary> /// Ctor /// </summary> /// <param name="settings"></param> protected ModelReader(DataReaderSettings settings) : base(settings) { }
public ApiKeyValidator(DataReaderSettings settings) { _settings = settings; }
private static void Main(string[] args) { PIConnection piConnection; var _logger = LogManager.GetLogger(typeof(Program)); try { var options = new CommandLineOptions(); if (Parser.Default.ParseArguments(args, options)) { ValidateSettings(options); var readerSettings = new DataReaderSettings(); if (options.Server.Length == 1) { piConnection = new PIConnection(options.Server[0]); } else { piConnection = new PIConnection(options.Server[0], options.Server[1]); } if (options.testTagSearch != null && options.testTagSearch.Length > 0) { _logger.Info("Search test started..."); piConnection.Connect(); var search = new TagsLoader(piConnection.GetPiServer()); foreach (var s in options.testTagSearch) { var tags = search.Search(s).ToList(); _logger.WarnFormat("Found {0} tags with query {1}", tags.Count, s); if (options.testTagSearchPrintAllTags) { tags.ForEach(t => _logger.InfoFormat("Tag: {0}, PointClass: {1}", t.Name, t.PointClass)); } } } if (options.TagQueries != null && options.TagQueries.Length > 0) { _logger.Info("Data reader starting..."); piConnection.Connect(); if (options.EventsPerDay > 0 && options.TagsCount > 0) { // var type = options.UseParallel? DataReaderSettings.ReadingType.Parallel: DataReaderSettings.ReadingType.Bulk; var type = DataReaderSettings.ReadingType.Bulk; readerSettings.AutoTune(type, options.EventsPerDay, options.TagsCount, options.EventsPerRead); } // starts the data writer // settings data filters to filter out the data if option is specified var filtersFactory = new FiltersFactory(); if (options.RemoveDuplicates) { filtersFactory.AddFilter(new DuplicateValuesFilter()); } if (options.FilterDigitalStates) { filtersFactory.AddFilter(new SystemStatesFilter()); } _logger.Info("Creating worker objects..."); var dataWriter = new DataWriter(options.OutfileName, options.EventsPerFile, options.WritersCount, filtersFactory); var dataReader = new DataReaderBulk(readerSettings, dataWriter, options.EnableWrite); //dataReader = options.UseParallel // ? (IDataReader) new DataReaderParallel(readerSettings, dataWriter) // : new DataReaderBulk(readerSettings, dataWriter); var orchestrator = new Orchestrator(options.StartTime, options.EndTime, readerSettings.TimeIntervalPerDataRequest, dataReader); var tagsLoader = new TagsLoader(piConnection.GetPiServer(), options.TagQueries, readerSettings.TagGroupSize, orchestrator); var statistics = new Statistics(); // starts the orchestrator _logger.Info("Starting workers..."); var tagsLoaderTask = tagsLoader.Run(); var writerTask = dataWriter.Run(); // var processorTask = dataProcessor.Run(); -- not using this after determining this was not bringing much performance gain. var orchestratorTask = orchestrator.Run(); var dataReaderTask = dataReader.Run(); var statsTask = statistics.Run(); // starts the data reader Task.WaitAll(orchestratorTask, writerTask, dataReaderTask, tagsLoaderTask); statistics.Stop(); Task.WaitAll(statsTask); _logger.Info("All tasks completed successfully"); } // DEBUG // Console.ReadKey(); // exit ok Environment.Exit(0); } else { // exit with error Environment.Exit(1); } } catch (Exception ex) { _logger.Error(ex); } }
public void ConvertJson2Xml_ComplexGraph_RoundTripsJsonToXmlAndBack() { // input from pass1.json in test suite at http://www.json.org/JSON_checker/ const string inputJson = @"[ ""JSON Test Pattern pass1"", {""object with 1 member"":[""array with 1 element""]}, {}, [], -42, true, false, null, { ""integer"": 1234567890, ""real"": -9876.543210, ""e"": 0.123456789e-12, ""E"": 1.234567890E+34, """": 23456789012E66, ""zero"": 0, ""one"": 1, ""space"": "" "", ""quote"": ""\"""", ""backslash"": ""\\"", ""controls"": ""\b\f\n\r\t"", ""slash"": ""/ & \/"", ""alpha"": ""abcdefghijklmnopqrstuvwyz"", ""ALPHA"": ""ABCDEFGHIJKLMNOPQRSTUVWYZ"", ""digit"": ""0123456789"", ""0123456789"": ""digit"", ""special"": ""`1~!@#$%^&*()_+-={':[,]}|;.</>?"", ""hex"": ""\u0123\u4567\u89AB\uCDEF\uabcd\uef4A"", ""true"": true, ""false"": false, ""null"": null, ""array"":[ ], ""object"":{ }, ""address"": ""50 St. James Street"", ""url"": ""http://www.JSON.org/"", ""comment"": ""// /* <!-- --"", ""# -- --> */"": "" "", "" s p a c e d "" :[1,2 , 3 , 4 , 5 , 6 ,7 ],""compact"":[1,2,3,4,5,6,7], ""jsontext"": ""{\""object with 1 member\"":[\""array with 1 element\""]}"", ""quotes"": """ \u0022 %22 0x22 034 """, ""\/\\\""\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"" : ""A key can be any string"" }, 0.5 ,98.6 , 99.44 , 1066, 1e1, 0.1e1, 1e-1, 1e00,2e+00,2e-00 ,""rosebud""]"; var expectedXml = @"<array> <item>JSON Test Pattern pass1</item> <item> <object_x0020_with_x0020_1_x0020_member> <item>array with 1 element</item> </object_x0020_with_x0020_1_x0020_member> </item> <item /> <item /> <item>-42</item> <item>true</item> <item>false</item> <item /> <item> <integer>1234567890</integer> <real>-9876.54321</real> <e>1.23456789e-13</e> <E>1.23456789e+34</E> <double>2.3456789012e+76</double> <zero>0</zero> <one>1</one> <space> </space> <quote>""</quote> <backslash>\</backslash> <controls>" + "\n\r\t" + @"</controls> <slash>/ & /</slash> <alpha>abcdefghijklmnopqrstuvwyz</alpha> <ALPHA>ABCDEFGHIJKLMNOPQRSTUVWYZ</ALPHA> <digit>0123456789</digit> <_x0030_123456789>digit</_x0030_123456789> <special>`1~!@#$%^&*()_+-={':[,]}|;.</>?</special> <hex>" + "\u0123\u4567\u89AB\uCDEF\uABCD\uEF4A" + @"</hex> <true>true</true> <false>false</false> <null /> <array /> <object /> <address>50 St. James Street</address> <url>http://www.JSON.org/</url> <comment>// /* <!-- --</comment> <_x0023__x0020_--_x0020_--_x003E__x0020__x002A__x002F_> </_x0023__x0020_--_x0020_--_x003E__x0020__x002A__x002F_> <_x0020_s_x0020_p_x0020_a_x0020_c_x0020_e_x0020_d_x0020_> <item>1</item> <item>2</item> <item>3</item> <item>4</item> <item>5</item> <item>6</item> <item>7</item> </_x0020_s_x0020_p_x0020_a_x0020_c_x0020_e_x0020_d_x0020_> <compact> <item>1</item> <item>2</item> <item>3</item> <item>4</item> <item>5</item> <item>6</item> <item>7</item> </compact> <jsontext>{""object with 1 member"":[""array with 1 element""]}</jsontext> <quotes>&#34; "" %22 0x22 034 &#x22;</quotes> <" + "_x002F__x005C__x0022_\uCAFE\uBABE_xAB98__xFCDE_\uBCDA_xEF4A__x0008__x000C__x000A__x000D__x0009__x0060_1_x007E__x0021__x0040__x0023__x0024__x0025__x005E__x0026__x002A__x0028__x0029___x002B_-_x003D__x005B__x005D__x007B__x007D__x007C__x003B__x003A__x0027__x002C_._x002F__x003C__x003E__x003F_" + @">A key can be any string</" + "_x002F__x005C__x0022_\uCAFE\uBABE_xAB98__xFCDE_\uBCDA_xEF4A__x0008__x000C__x000A__x000D__x0009__x0060_1_x007E__x0021__x0040__x0023__x0024__x0025__x005E__x0026__x002A__x0028__x0029___x002B_-_x003D__x005B__x005D__x007B__x007D__x007C__x003B__x003A__x0027__x002C_._x002F__x003C__x003E__x003F_" + @"> </item> <item>0.5</item> <item>98.6</item> <item>99.44</item> <item>1066</item> <item>10</item> <item>1</item> <item>0.1</item> <item>1</item> <item>2</item> <item>2</item> <item>rosebud</item> </array>"; var jsonTokenizer = new JsonReader.JsonTokenizer(); var tokens1 = jsonTokenizer.GetTokens(inputJson); var writerSettings = new DataWriterSettings { PrettyPrint = true }; var xmlFormatter = new TransformFormatter <ModelTokenType, MarkupTokenType>(new XmlWriter.XmlFormatter(writerSettings), new XmlWriter.XmlOutTransformer(writerSettings)); var actualXml = xmlFormatter.Format(tokens1); Assert.Equal(expectedXml, actualXml); const string expectedJson = @"[""JSON Test Pattern pass1"",{""object with 1 member"":[""array with 1 element""]},{},[],-42,true,false,null,{""integer"":1234567890,""real"":-9876.54321,""e"":1.23456789e-13,""E"":1.23456789e+34,"""":2.3456789012e+76,""zero"":0,""one"":1,""space"":"" "",""quote"":""\"""",""backslash"":""\\"",""controls"":""\b\f\n\r\t"",""slash"":""/ & /"",""alpha"":""abcdefghijklmnopqrstuvwyz"",""ALPHA"":""ABCDEFGHIJKLMNOPQRSTUVWYZ"",""digit"":""0123456789"",""0123456789"":""digit"",""special"":""`1~!@#$%^&*()_+-={':[,]}|;.\u003C/>?"",""hex"":""\u0123\u4567\u89AB\uCDEF\uABCD\uEF4A"",""true"":true,""false"":false,""null"":null,""array"":[],""object"":{},""address"":""50 St. James Street"",""url"":""http://www.JSON.org/"",""comment"":""// /* \u003C!-- --"",""# -- --> */"":"" "","" s p a c e d "":[1,2,3,4,5,6,7],""compact"":[1,2,3,4,5,6,7],""jsontext"":""{\""object with 1 member\"":[\""array with 1 element\""]}"",""quotes"":""" \"" %22 0x22 034 """,""/\\\""\uCAFE\uBABE\uAB98\uFCDE\uBCDA\uEF4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./\u003C>?"":""A key can be any string""},0.5,98.6,99.44,1066,10,1,0.1,1,2,2,""rosebud""]"; var readerSettings = new DataReaderSettings(writerSettings.Resolver); var xmlTokenizer = new TransformTokenizer <MarkupTokenType, ModelTokenType>(new XmlReader.XmlTokenizer(), new XmlReader.XmlInTransformer(readerSettings)); var tokens2 = xmlTokenizer.GetTokens(actualXml); var jsonFormatter = new JsonWriter.JsonFormatter(new DataWriterSettings { PrettyPrint = false }); var actualJson = jsonFormatter.Format(tokens2); Assert.Equal(expectedJson, actualJson); }
/// <summary> /// Ctor /// </summary> /// <param name="settings"></param> public JsonReader(DataReaderSettings settings) : base(settings != null ? settings : new DataReaderSettings()) { }