public override void Refresh() { MenuCommand setCommand = GetTaskMenuSetCommand(task, CovenantClient); AdditionalOptions[AdditionalOptions.IndexOf( this.AdditionalOptions.FirstOrDefault(MC => MC.Name == "Set") )] = setCommand; AdditionalOptions[AdditionalOptions.IndexOf( this.AdditionalOptions.FirstOrDefault(MC => MC.Name == "Unset") )] = new MenuCommandGenericUnset(setCommand.Parameters.FirstOrDefault(P => P.Name == "Option").Values); this.SetupMenuAutoComplete(); }
public override bool ValidateMenuParameters(string[] parameters, bool forwardEntrance = true) { try { if (forwardEntrance) { if (parameters.Length != 1) { EliteConsole.PrintFormattedErrorLine("Must specify a Task Name."); EliteConsole.PrintFormattedErrorLine("Usage: Task <task_name>"); return(false); } GruntTask gruntTask = this.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; } MenuCommand setCommand = GetTaskMenuSetCommand(this.Task.Name, CovenantClient); setCommand.Parameters.FirstOrDefault(P => P.Name == "Option").Values = this.Task.Options .Select(TO => new MenuCommandParameterValue { Value = TO.Name }) .ToList(); this.AdditionalOptions[AdditionalOptions.IndexOf( this.AdditionalOptions.FirstOrDefault(MC => MC.Name == "Set") )] = setCommand; AdditionalOptions[AdditionalOptions.IndexOf( this.AdditionalOptions.FirstOrDefault(MC => MC.Name == "Unset") )] = new MenuCommandGenericUnset(setCommand.Parameters.FirstOrDefault(P => P.Name == "Option").Values); this.Refresh(); } catch (HttpOperationException e) { EliteConsole.PrintFormattedWarningLine("CovenantException: " + e.Response.Content); } return(true); }
public override void Refresh() { this.Task = this.CovenantClient.ApiGrunttasksByIdGet(this.Task.Id ?? default); this.Grunt = this.CovenantClient.ApiGruntsByIdGet(this.Grunt.Id ?? default); var setoptionparam = this.AdditionalOptions.FirstOrDefault(AO => AO.Name == "Set") .Parameters .FirstOrDefault(P => P.Name == "Option"); setoptionparam.Values = this.Task.Options.Select(TO => new MenuCommandParameterValue { Value = TO.Name }).ToList(); List <string> filePathTasks = new List <string> { "Assembly", "AssemblyReflect", "Upload", "ShellCode" }; if (filePathTasks.Contains(this.Task.Name)) { var filepaths = Utilities.GetFilesForPath(Common.EliteDataFolder); if (!setoptionparam.Values.Select(V => V.Value).Contains("LocalFilePath")) { setoptionparam.Values.Add(new MenuCommandParameterValue { Value = "LocalFilePath", NextValueSuggestions = filepaths }); } else { setoptionparam.Values.FirstOrDefault(V => V.Value == "LocalFilePath").NextValueSuggestions = filepaths; } } this.AdditionalOptions[AdditionalOptions.IndexOf( this.AdditionalOptions.FirstOrDefault(MC => MC.Name == "Unset") )] = new MenuCommandGenericUnset(setoptionparam.Values); this.SetupMenuAutoComplete(); }