protected override void OnHandler(ParameterHandlerInfo info) { Core.Log.Warning("Starting Serializer TEST"); if (info.Arguments?.Contains("/complex") == true) { var file = "c:\\temp\\complex.test.nbin.gz"; var serializer = SerializerManager.GetByFileName(file); AssemblyResolverManager.RegisterDomain(new[] { @"C:\AGSW_GIT\Travel\src\Flights\Engines\Services\Agsw.Travel.Flights.Engines.Service\bin\Release\netcoreapp2.2" }); //AssemblyResolverManager.RegisterDomain(new[] { @"C:\Repo\AgswGit\Travel\src\Flights\Engines\Services\Agsw.Travel.Flights.Engines.Service\bin\Release\netcoreapp2.2" }); object value = null; try { value = serializer.DeserializeFromFile <object>(file); //value = rMsg.Body.GetValue(); } catch (DeserializerException exGO) { var jsonSerializer = new JsonTextSerializer { Indent = true }; jsonSerializer.SerializeToFile(exGO.Value, "c:\\temp\\complexObject-GenericObject.json"); var val = exGO.Value["Products"][5]; } RunTestEx(value, 500, null); //GC.Collect(); //GC.WaitForFullGCComplete(); //RunTestEx(value, 200, new GZipCompressor()); //GC.Collect(); //GC.WaitForFullGCComplete(); //RunTestEx(value, 200, new DeflateCompressor()); return; } var sTest = new STest { FirstName = "Daniel", LastName = "Redondo", Age = 33, value = 166 }; var collection = new List <List <STest> >(); for (var i = 0; i <= 10; i++) { var colSTest = new List <STest> { sTest, sTest, sTest, sTest, sTest, sTest, sTest, sTest, sTest, sTest, sTest, sTest, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 0, Age = 1, Brother = sTest }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 1, Age = 2, Brother = sTest }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 2, Age = 3, Brother = sTest }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 3, Age = 4, Brother = sTest }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 4, Age = 5, Brother = sTest }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 5, Age = 6, Brother = sTest }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 6, Age = 7, Brother = sTest }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 7, Age = 8, Brother = sTest }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 8, Age = 9, Brother = sTest }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 9, Age = 10, Brother = sTest }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 10, Age = 11 }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 11, Age = 12 }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 12, Age = 13 }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 13, Age = 14 }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 14, Age = 15 }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 15, Age = 16 }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 16, Age = 17 }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 17, Age = 18 }, new STest { FirstName = "Person", LastName = "Person" + i + "." + i + 18, Age = 19 }, //new STest2 { FirstName = "Person" , LastName = "Person" + i + "." + i+19, Age = 20, New = "This is a test" } }; collection.Add(colSTest); } var lt = new List <STest> { new STest { FirstName = "Name1", LastName = "LName1", Age = 11 }, //new STest2 { FirstName = "Name2" , LastName = "LName2", Age = 20, New = "This is a test" } }; var lt2 = new List <Test3> { new Test3 { Values = new List <int> { 2, 3, 4, 5 } }, new Test3 { Values = new List <int> { 10, 11, 12, 13 } } }; var dct = new Dictionary <string, int> { ["Value1"] = 1, ["Value2"] = 2, ["Value3"] = 3, }; var colClone = collection[0].DeepClone(); var clone = collection.DeepClone(); if (info.Arguments?.Contains("/parallel") == true) { RunSingleTest(collection[0], 2, false); Core.Log.InfoBasic("Press ENTER to Start:"); Console.ReadLine(); Task.WaitAll( Enumerable.Range(0, 8).Select(i => Task.Run(() => RunSingleTest(collection[0], 200_000, false))).ToArray() ); Console.ReadLine(); return; } RunTest(collection[0], 200_000, false); }
public static void Init(Factories factories) { if (_initialized) { return; } _initialized = true; UpdateLocalUtc(); Factory.SetFactories(factories); Status = Factory.CreateStatusEngine(); Log = Factory.CreateLogEngine(); Trace = Factory.CreateTraceEngine(); factories.Init(); GlobalSettings.ReloadSettings(); DebugMode = DebugMode || GlobalSettings.DebugMode; if (DebugMode) { Log.InfoBasic("Core Init - Platform: {0} - OS: {1}", Factory.PlatformType, RuntimeInformation.OSDescription); Log.InfoBasic("Directory: {0}", Directory.GetCurrentDirectory()); } AssemblyResolverManager.RegisterDomain(); if (ServiceContainer.HasConsole) { Log.AddConsoleStorage(); } if (Injector?.Settings != null && Injector.Settings.Interfaces.Count > 0) { //Init Log Log.LibDebug("Loading log engine configuration"); var logStorages = Injector.GetNames <ILogStorage>(); if (logStorages?.Any() == true) { foreach (var name in logStorages) { if (!Settings[$"Core.Log.Storage.{name}.Enabled"].ParseTo(false)) { continue; } Log.LibDebug("Loading log storage: {0}", name); var lSto = Injector.New <ILogStorage>(name); if (lSto == null) { Log.Warning("The Injection for \"{0}\" with name \"{1}\" is null.", typeof(ILogStorage).Name, name); continue; } if (lSto.GetType() == typeof(ConsoleLogStorage)) { Log.LibDebug("Console log storage already added, ignoring."); continue; } Log.Storage.Add(lSto, Settings[$"Core.Log.Storage.{name}.LogLevel"].ParseTo(LogLevel.Error | LogLevel.Warning)); } } var logStorage = Log.Storage.Get(typeof(ConsoleLogStorage)); if (!Settings["Core.Log.Storage.Console.Enabled"].ParseTo(true)) { Log.Storage.Remove(logStorage); } Log.Storage.ChangeStorageLogLevel(logStorage, Settings["Core.Log.Storage.Console.LogLevel"].ParseTo(LogStorageCollection.AllLevels)); Log.MaxLogLevel = (LogLevel)GlobalSettings.LogMaxLogLevel; Log.Enabled = GlobalSettings.LogEnabled; //Init Trace Log.LibDebug("Loading trace engine configuration"); var traceStorages = Injector.GetNames <ITraceStorage>(); if (traceStorages?.Any() == true) { foreach (var name in traceStorages) { if (!Settings[$"Core.Trace.Storage.{name}.Enabled"].ParseTo(false)) { continue; } Log.LibDebug("Loading trace storage: {0}", name); var lTrace = Injector.New <ITraceStorage>(name); if (lTrace == null) { Log.Warning("The Injection for \"{0}\" with name \"{1}\" is null.", typeof(ITraceStorage).Name, name); continue; } Trace.Storage.Add(lTrace); } } Trace.Enabled = GlobalSettings.TraceEnabled; //Init Status Log.LibDebug("Loading status engine configuration"); var statusTransports = Injector.GetNames <IStatusTransport>(); if (statusTransports?.Any() == true) { foreach (var name in statusTransports) { if (!Settings[$"Core.Status.Transport.{name}.Enabled"].ParseTo(false)) { continue; } Log.LibDebug("Loading status transport: {0}", name); var sTransport = Injector.New <IStatusTransport>(name); if (sTransport == null) { Log.Warning("The Injection for \"{0}\" with name \"{1}\" is null.", typeof(IStatusTransport).Name, name); continue; } Status.Transports.Add(sTransport); } } Status.Enabled = GlobalSettings.StatusEnabled; } try { var allAssemblies = Factory.GetAllAssemblies(); var types = allAssemblies.SelectMany(a => { try { return(a.DefinedTypes); } catch { // ignored } return(new TypeInfo[0]); }).Where(t => !t.IsAbstract && t.IsClass && t.ImplementedInterfaces.Contains(typeof(ICoreStart))).ToArray(); if (types?.Any() == true) { foreach (var type in types) { try { var instance = (ICoreStart)Activator.CreateInstance(type.AsType()); Log.LibDebug("Loading CoreStart from: {0}", instance); instance.CoreInit(factories); } catch (Exception ex) { Log.Write(ex); } } } } catch (Exception ex) { Log.Write(ex); } Status.Attach(() => { if (Settings == null) { return(null); } var sItem = new StatusItem { Name = "Application Information\\Settings" }; Settings.OrderBy(i => i.Key).Each(i => sItem.Values.Add(i.Key, i.Value)); return(sItem); }); var onError = false; lock (OninitActions) { while (OninitActions.Count > 0) { try { OninitActions.Dequeue()(); } catch (Exception ex) { Log.Write(ex); onError = true; } } } Log.Start(); Task.Delay(25).WaitAsync(); var dlog = (Log as DefaultLogEngine); dlog?.LogDoneTask.WaitAsync(); if (onError) { throw new Exception("Error initializing the application."); } Log.LibDebug("Core has been initialized."); }