public override void Refresh() { this.Grunts = CovenantClient.ApiGruntsGet().ToList(); List <MenuCommandParameterValue> gruntNames = Grunts.Where(G => G.Status != GruntStatus.Uninitialized) .Select(G => new MenuCommandParameterValue { Value = G.Name }).ToList(); List <MenuCommandParameterValue> killableGruntNames = Grunts.Where(G => G.Status != GruntStatus.Uninitialized && G.Status != GruntStatus.Killed) .Select(G => new MenuCommandParameterValue { Value = G.Name }).ToList(); this.MenuOptions.FirstOrDefault(M => M.MenuTitle == "Interact") .MenuItemParameters.FirstOrDefault(P => P.Name == "Grunt Name").Values = gruntNames; this.AdditionalOptions.FirstOrDefault(O => O.Name == "Kill") .Parameters.FirstOrDefault(P => P.Name == "Grunt Name").Values = killableGruntNames; this.AdditionalOptions.FirstOrDefault(AO => AO.Name == "Rename") .Parameters.FirstOrDefault(P => P.Name == "Old Name").Values = gruntNames; this.AdditionalOptions.FirstOrDefault(AO => AO.Name == "Hide") .Parameters.FirstOrDefault(P => P.Name == "Grunt Name").Values = gruntNames.Where(GN => !this.HiddenGruntNames.Contains(GN.Value)).ToList(); this.AdditionalOptions.FirstOrDefault(AO => AO.Name == "Unhide") .Parameters.FirstOrDefault(P => P.Name == "Hidden Grunt Name").Values = this.HiddenGruntNames .Select(G => new MenuCommandParameterValue { Value = G }).ToList(); this.SetupMenuAutoComplete(); }
public override bool ValidateMenuParameters(string[] parameters, bool forwardEntrance = true) { if (forwardEntrance) { if (parameters.Length != 1) { EliteConsole.PrintFormattedErrorLine("Must specify a ListenerName."); EliteConsole.PrintFormattedErrorLine("Usage: Interact <listener_name>"); return(false); } string listenerName = parameters[0].ToLower(); Listener specifiedListener = CovenantClient.ApiListenersGet().FirstOrDefault(L => L.Name.ToLower() == listenerName); if (specifiedListener == null) { EliteConsole.PrintFormattedErrorLine("Specified invalid ListenerName: " + listenerName); EliteConsole.PrintFormattedErrorLine("Usage: Interact <listener_name>"); return(false); } this.listener = specifiedListener; this.listenerType = this.CovenantClient.ApiListenersTypesByIdGet(this.listener.ListenerTypeId ?? default); ((HostedFilesMenuItem)this.MenuOptions.FirstOrDefault(MO => MO.MenuTitle == "HostedFiles")).Listener = listener; this.MenuTitle = listenerName; } this.Refresh(); return(true); }
public override void Command(MenuItem menuItem, string UserInput) { UsersMenuItem usersMenuItem = (UsersMenuItem)menuItem; usersMenuItem.Refresh(); EliteConsoleMenu menu = new EliteConsoleMenu(EliteConsoleMenu.EliteConsoleMenuType.List, "Users"); menu.Columns.Add("Username"); menu.Columns.Add("Roles"); menu.Columns.Add("Status"); usersMenuItem.Users.ForEach(U => { var userRoles = this.CovenantClient.ApiUsersByUidRolesGet(U.Id).ToList(); List <string> roles = new List <string>(); foreach (var userRole in userRoles) { IdentityRole role = CovenantClient.ApiRolesByRidGet(userRole.RoleId); if (role != null) { roles.Add(role.Name); } } menu.Rows.Add(new List <string> { U.UserName, String.Join(", ", roles), "Active" }); }); menu.Print(); }
public override void Refresh() { this.listener = this.CovenantClient.ApiListenersGet().FirstOrDefault(L => L.Name == this.listener.Name); this.listenerType = this.CovenantClient.ApiListenersTypesByIdGet(this.listener.ListenerTypeId ?? default); List <MenuCommandParameterValue> listenerNames = CovenantClient.ApiListenersGet().Select(L => new MenuCommandParameterValue { Value = L.Name }).ToList(); this.MenuItemParameters.FirstOrDefault(L => L.Name == "Listener Name").Values = listenerNames; }
public override async void Command(MenuItem menuItem, string UserInput) { try { List <string> commands = UserInput.Split(" ").ToList(); if (commands.Count() < 3 || !commands[0].Equals(this.Name, StringComparison.OrdinalIgnoreCase)) { menuItem.PrintInvalidOptionError(UserInput); return; } GruntTask task = ((TaskMenuItem)menuItem).Task; GruntTaskOption option = task.Options.FirstOrDefault(O => O.Name.Equals(commands[1], StringComparison.OrdinalIgnoreCase)); if (commands[1].Equals("LocalFilePath", StringComparison.OrdinalIgnoreCase)) { string FileName = Path.Combine(Common.EliteDataFolder, commands[2]); if (!File.Exists(FileName)) { menuItem.PrintInvalidOptionError(UserInput); EliteConsole.PrintFormattedErrorLine("File: \"" + FileName + "\" does not exist on the local system."); return; } task.Options.FirstOrDefault(O => O.Name == "EncodedAssembly").Value = Convert.ToBase64String(File.ReadAllBytes(FileName)); await CovenantClient.ApiGrunttasksPutAsync(task); } else if (option == null) { menuItem.PrintInvalidOptionError(UserInput); EliteConsole.PrintFormattedErrorLine("Invalid Set option: \"" + commands[1] + "\""); return; } else { option.Value = String.Join(" ", commands.GetRange(2, commands.Count() - 2)); await CovenantClient.ApiGrunttasksPutAsync(task); } } catch (HttpOperationException e) { EliteConsole.PrintFormattedWarningLine("CovenantException: " + e.Response.Content); } }
public override bool ValidateMenuParameters(string[] parameters, bool forwardEntrance = true) { if (forwardEntrance) { if (parameters.Length != 1) { EliteConsole.PrintFormattedErrorLine("Must specify a Task Name."); EliteConsole.PrintFormattedErrorLine("Usage: Task <task_name>"); return(false); } GruntTask gruntTask = CovenantClient.ApiGruntTasksByTasknameGet(parameters[0]); if (gruntTask == null) { EliteConsole.PrintFormattedErrorLine("Specified invalid Task Name: " + parameters[0]); EliteConsole.PrintFormattedErrorLine("Usage: Task <task_name>"); return(false); } this.task = gruntTask; this.MenuTitle = this.task.Name; } this.Refresh(); return(true); }