Esempio n. 1
0
        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}");
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        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;
            }
        }
Esempio n. 6
0
        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;
            }
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
 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");
     }
 }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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));
 }
Esempio n. 12
0
 public void Execute(CommandElements parameters, IConsoleWriter console)
 {
     Configuration.Unload(parameters.Arguments.FirstOrDefault());
 }
 public void Execute(CommandElements parameters, IConsoleWriter console)
 {
     new Manager().HandleRequest(parameters, console);
 }
Esempio n. 14
0
 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);
        }
Esempio n. 16
0
 public void Execute(CommandElements parameters, IConsole console)
 {
     Manager.HandleCommand(parameters, console);
 }
Esempio n. 17
0
 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}}")));
        }