public override void Run() { try { ControlInput.IsOpenLoop = true; Settings settings = Settings.GetInstance(); settings.GetDefaultSettings(); logger.Info($"Ligral (R) Simulation Engine version {Program.Version}.\nCopyright (C) Ligral Tech. All rights reserved."); PluginLoader pluginLoader = new PluginLoader(); pluginLoader.Load(); if (IsJsonFile is bool isJsonFile && isJsonFile) { JsonLoader jsonLoader = new JsonLoader(); jsonLoader.Load(FileName); } else { Interpreter interpreter = Interpreter.GetInstance(FileName); interpreter.Interpret(); } Inspector inspector = new Inspector(); List <Model> routine = inspector.Inspect(ModelManager.ModelPool); string problemName = Path.GetFileNameWithoutExtension(FileName); Problem problem = new Problem(problemName, routine); Linearizer linearizer = new Linearizer(); if (settings.LinearizerConfiguration != null) { linearizer.Configure(settings.LinearizerConfiguration); } else { logger.Warn("No linearization configuration is set. The model will be linearized at zero."); } settings.ApplySetting(); linearizer.Linearize(problem); if (OutputFile is string outputFile) { try { File.WriteAllText(outputFile, linearizer.ToString()); } catch (Exception e) { logger.Prompt(linearizer.ToString()); throw logger.Error(new LigralException($"Cannot write to {outputFile}, got error: {e.Message}")); } } else { logger.Prompt(linearizer.ToString()); } }
// Token: 0x06000625 RID: 1573 RVA: 0x000251D8 File Offset: 0x000233D8 private List <DiscoveryPluginResultBase> Linearize(IEnumerable <DiscoveryPluginResultBase> input) { List <DiscoveryPluginResultBase> list = Linearizer.Linearize <DiscoveryPluginResultBase>((from item in input select Linearizer.CreateInputItem <DiscoveryPluginResultBase>(item, item.GetPrerequisites(input))).ToArray <Linearizer.Input <DiscoveryPluginResultBase> >(), true, true); IEnumerable <DiscoveryPluginResultBase> collection = from item in list where item is CoreDiscoveryPluginResult && item.PluginTypeName == "SolarWinds.Orion.Core.DiscoveryPlugin.CoreDiscoveryPlugin" select item; List <DiscoveryPluginResultBase> list2 = new List <DiscoveryPluginResultBase>(); list2.AddRange(collection); for (int i = 0; i < list.Count; i++) { DiscoveryPluginResultBase discoveryPluginResultBase = list[i]; if (!(discoveryPluginResultBase is CoreDiscoveryPluginResult) || !(discoveryPluginResultBase.PluginTypeName == "SolarWinds.Orion.Core.DiscoveryPlugin.CoreDiscoveryPlugin")) { list2.Add(discoveryPluginResultBase); } } return(list2); }
private List <DiscoveryPluginResultBase> Linearize( IEnumerable <DiscoveryPluginResultBase> input) { List <DiscoveryPluginResultBase> pluginResultBaseList1 = (List <DiscoveryPluginResultBase>)Linearizer.Linearize <DiscoveryPluginResultBase>((IEnumerable <Linearizer.Input <M0> >)input.Select <DiscoveryPluginResultBase, Linearizer.Input <DiscoveryPluginResultBase> >((Func <DiscoveryPluginResultBase, Linearizer.Input <DiscoveryPluginResultBase> >)(item => (Linearizer.Input <DiscoveryPluginResultBase>)Linearizer.CreateInputItem <DiscoveryPluginResultBase>((M0)item, (IEnumerable <M0>)item.GetPrerequisites(input)))).ToArray <Linearizer.Input <DiscoveryPluginResultBase> >(), true, true); IEnumerable <DiscoveryPluginResultBase> collection = ((IEnumerable <DiscoveryPluginResultBase>)pluginResultBaseList1).Where <DiscoveryPluginResultBase>((Func <DiscoveryPluginResultBase, bool>)(item => item is CoreDiscoveryPluginResult && item.get_PluginTypeName() == "SolarWinds.Orion.Core.DiscoveryPlugin.CoreDiscoveryPlugin")); List <DiscoveryPluginResultBase> pluginResultBaseList2 = new List <DiscoveryPluginResultBase>(); pluginResultBaseList2.AddRange(collection); for (int index = 0; index < pluginResultBaseList1.Count; ++index) { DiscoveryPluginResultBase pluginResultBase = pluginResultBaseList1[index]; if (!(pluginResultBase is CoreDiscoveryPluginResult) || !(pluginResultBase.get_PluginTypeName() == "SolarWinds.Orion.Core.DiscoveryPlugin.CoreDiscoveryPlugin")) { pluginResultBaseList2.Add(pluginResultBase); } } return(pluginResultBaseList2); }