private void SetupComponents(object sender, RoutedEventArgs e) { Closing += (o, args) => { Application.Current.Shutdown(); }; //Setup the command line interface Cmd = Cmd ?? CommandLine.GetInstance(); //Taskbar notification icon TaskbarIconManager.AddItem("Show", () => { ShowInTaskbar = true; Visibility = Visibility.Visible; Activate(); WindowState = WindowState.Maximized; }); TaskbarIconManager.AddItem("Exit", () => { Application.Current.Shutdown(0); }); TaskbarIconManager.CommitItems(); TaskbarIconManager.SetVisible(true); LoadedModules.SelectionChanged += LoadedModulesOnSelectionChanged; // Invokes commands recieved from TCP connections RemoteManager.CommandRecieved += (command, tcpClient) => { Task.Factory.StartNew(() => { UserModule mod = null; Command cm = null; if (UserModule.FindResponsibleUserModule(command, out mod, out cm, tcpClient)) { Dispatcher.Invoke(() => { Status = $"{(tcpClient != null ? (tcpClient.Client.RemoteEndPoint + " > ") : "")} [{mod.Name}:{mod.Prefix}] > {cm.LocalCommand}"; mod.GiveRegexCommand(cm); }); } }); }; RemoteManager.ClientConnected += client => { Dispatcher.Invoke(() => { Status = $"({client.Client.RemoteEndPoint}) has connected!"; }); }; RemoteManager.ClientDisconnected += client => { Dispatcher.Invoke(() => { Status = $"({client.Client.RemoteEndPoint}) has disconnected."; }); }; Command.Responded += (response, com, client) => { Dispatcher.Invoke(() => { Status = $"{((com != null && com != Command.Empty) ? $"[{com?.UserModuleName}] > " : "")}{response}"; }); }; }
private void InitiateCommand() { var query = Input.Text; //_cmdInstance.Hide(); Task.Run(() => { UserModule um = null; Command cm = null; if (UserModule.FindResponsibleUserModule(query, out um, out cm)) { Dispatcher.Invoke(() => { um.GiveRegexCommand(cm); _commandHistory.Add(cm.ToString()); }); } }); }