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); }
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) }; } } } } }