Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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);
     }
 }
Esempio n. 6
0
        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);
        }