Example #1
0
 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);
        }
Example #3
0
        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);
        }