Example #1
0
        private static Dictionary <string, APICmdlet> GetImplementedIACmdlets()
        {
            var doc = XDocument.Parse(File.ReadAllText("psCheckPoint.xml"));

            var members = doc.Descendants("members").Descendants("member")
                          .Where(c => c.Descendants("IA").Any())
                          .ToList();

            var cmds = new Dictionary <string, APICmdlet>();

            foreach (var member in members)
            {
                string fullClassName = member.Attribute("name").Value.Split(':').Last();
                var    asm           = typeof(OpenCheckPointSession).Assembly;
                var    t             = asm.GetType(fullClassName);

                foreach (var api in member.Descendants("IA"))
                {
                    string cmd    = api.Attribute("cmd").Value;
                    string cmdlet = api.Value;

                    cmds[cmd] = new APICmdlet(cmd, cmdlet, t);
                }
            }

            return(cmds);
        }
Example #2
0
        private static void GetImplementedCmdlets()
        {
            var doc = XDocument.Parse(File.ReadAllText("psCheckPoint.xml"));

            var members = doc.Descendants("members").Descendants("member")
                          .Where(c => c.Descendants("api").Any())
                          .ToList();

            cmds      = new Dictionary <string, APICmdlet>();
            cmdExtras = new Dictionary <string, List <APICmdlet> >();

            foreach (var member in members)
            {
                string fullClassName = member.Attribute("name").Value.Split(':').Last();
                var    asm           = typeof(OpenCheckPointSession).Assembly;
                var    t             = asm.GetType(fullClassName);

                foreach (var api in member.Descendants("api"))
                {
                    string cmd    = api.Attribute("cmd")?.Value;
                    string parent = api.Attribute("parent")?.Value;
                    string cmdlet = api.Value;

                    if (cmd != null)
                    {
                        cmds[cmd] = new APICmdlet(cmd, cmdlet, t);
                    }
                    else if (parent != null)
                    {
                        if (cmdExtras.ContainsKey(parent))
                        {
                            cmdExtras[parent].Add(new APICmdlet(cmdlet, cmdlet, t));
                        }
                        else
                        {
                            cmdExtras[parent] = new List <APICmdlet>()
                            {
                                new APICmdlet(cmdlet, cmdlet, t)
                            };
                        }
                    }
                }
            }
        }