public string ExecuteMethod(CommandElements parameters) { var name = parameters?.Arguments.FirstOrDefault(); var consumer = Configuration.EventConsumers.FirstOrDefault(c => c.Name.ToLower() == name.ToLower()); if (consumer == null) { return($"Unknown Consumer \"{name}\""); } var arguments = parameters.Arguments.ToList(); var d = new Dictionary <string, object>(); foreach (var keyValuePair in parameters.DoubleFlags) { var correctedName = consumer.RequiredValues.FirstOrDefault(c => c.ToLower() == keyValuePair.Key.ToLower()); if (string.IsNullOrWhiteSpace(correctedName)) { return($"Unknown Parameter {keyValuePair.Key}"); } d.Add(correctedName, keyValuePair.Value); } if (!consumer.RequiredValues.All(k => d.ContainsKey(k))) { return($"Command Requires the following values :{string.Join("\r\n",consumer.RequiredValues)}"); } consumer?.HandleEvent(this, new DictionaryEventArgs() { Values = d }); return($"Executed Event {consumer.Name}"); }
public void CommandElementsShouldParseCommandProperly(string command, string op, string[] args, char[] flags) { var sut = new CommandElements(command); Assert.AreEqual(sut.command, op); Assert.IsTrue(sut.Arguments.SequenceEqual(args)); Assert.AreEqual(sut.Flags.OrderBy(flag => flag).ToJson(), flags.OrderBy(flag => flag).ToJson()); }
public void Execute(CommandElements parameters, IConsoleWriter console) { console.Write("Reloading..."); var result = Configuration.Reload(); console.Write("\rReloading...Done\r\n"); console.Write(result); }
static void Main(string[] args) { var manager = new Manager(); var commandElements = new CommandElements("PMGR Install Core"); var writer = new ConsoleWriter(); manager.HandleRequest(commandElements, writer); Console.ReadLine(); }
public void HandleRequest(CommandElements parameters, IConsoleWriter consoleWriter) { _consoleWriter = consoleWriter; var command = parameters.Arguments.FirstOrDefault().ToLower(); switch (command) { default: consoleWriter.Write($"Unknown Parameter '{command}'"); break; case "ls" when parameters.Flags.Contains("A"): case "list" when parameters.Flags.Contains("A"): ListAllPlugins(); break; case "ls" when parameters.Flags.Contains("I"): case "list" when parameters.Flags.Contains("I"): case "ls": case "list": ListInstalledPlugins(); break; case "install": if (parameters.Arguments.Count > 2) { InstallPlugin(parameters.Arguments[1], parameters.Arguments[2]); } else if (parameters.Arguments.Count == 2) { InstallPlugin(parameters.Arguments[1]); } else { _consoleWriter.Write("Please Specify a plugin\r\n"); } break; case "uninstall": if (parameters.Arguments.Count == 2) { UninstallPlugin(parameters.Arguments[1]); } else { _consoleWriter.Write("Please Specify a plugin\r\n"); } break; } }
public static void HandleCommand(CommandElements parameters, IConsole console) { var cmd = parameters.ToFormattedString(true); switch (parameters.Arguments.FirstOrDefault().ToLower()) { case "list": case "ls": List(new CommandElements(cmd), console); break; } }
public void CommandElementsShouldParseDoubleFlagsProperly() { var sut = new CommandElements("Test Command With -f -l -a -g -s --Enabled:True --Name:Test"); var expected = new Dictionary <string, string> { { "Enabled", "True" }, { "Name", "Test" } }.ToJson(); var result = sut.DoubleFlags.ToJson(); Assert.AreEqual(expected, result); }
private static void List(CommandElements parameters, IConsole console) { if (parameters.Flags.Contains("a")) { ListAll(console); } else if (parameters.Flags.Contains("i")) { ListInstalled(console); } else { console.Write("Please Specify -a for all or -i for installed\r\n"); } }
public string GetResult(CommandElements parameters) { var commands = Configuration.Commands; var searchValue = parameters?.Arguments.FirstOrDefault(); var result = string.Empty; foreach (var command in commands.Where(cmd => string.IsNullOrWhiteSpace(searchValue) || cmd.Name.Contains(searchValue) || cmd.Description.Contains(searchValue) )) { result += $"{command.Name} - {command.Description}\r\n"; } return(result); }
public string GetResult(CommandElements parameters) { result = null; var name = parameters.Arguments.FirstOrDefault() ?? string.Empty; var source = Configuration.EventSources.FirstOrDefault(e => e.Name == name); if (source == null) { return($"Unable to locate Source \"{name}\""); } source.EventFired += HandleFire; while (result == null) { System.Threading.Thread.Sleep(1000); } source.EventFired -= HandleFire; return(result); }
public void Execute(CommandElements parameters, IConsoleWriter console) { console.Write(GetResult(parameters)); }
public void Execute(CommandElements parameters, IConsoleWriter console) { Configuration.Unload(parameters.Arguments.FirstOrDefault()); }
public void Execute(CommandElements parameters, IConsoleWriter console) { new Manager().HandleRequest(parameters, console); }
public void Execute(CommandElements parameters, IConsoleWriter console) { console.Write(ExecuteMethod(parameters)); }
public void Execute(CommandElements parameters, IConsoleWriter console) { var exitCode = parameters?.Arguments.FirstOrDefault(); Environment.Exit(int.TryParse(exitCode, out var code) ? code : 0); }
public void Execute(CommandElements parameters, IConsole console) { Manager.HandleCommand(parameters, console); }
public void Execute(CommandElements parameters, IConsoleWriter console) { File.WriteAllText($@"{Configuration.BaseDirectory}\config.txt", GetValues()); console.Write(GetValues()); }
public string GetResult(CommandElements parameters) { var clients = TelnetServer.Clients; return(string.Join("\r\n", clients.Select(client => $"{((IPEndPoint)client.client.RemoteEndPoint).Address}:{((IPEndPoint)client.client.RemoteEndPoint).Port} - Connection Details:{{\r\n{getDetails(client)}\r\n}}"))); }