public ActionData(string rawInput, ShellManager shell, Response r = Response.None) { this.r = r; List <string> choppedData = new List <string>(rawInput.Split(' ')); try { c = (Command)Enum.Parse(typeof(Command), ShellManager.FormatString(choppedData[0])); choppedData.RemoveAt(0); } catch (ArgumentException) { c = Command.Name_error; return; } if (!CommandHelper.CommandIsOfType(c, shell.CurrentMachine.type)) { c = Command.Name_error; return; } if (choppedData.Count != CommandHelper.GetParametersOf(c).Count) { c = Command.Parameter_error; return; } else { parameters = choppedData; } }
public override Response Execute() { switch (data.r) { case Response.None: string mString = ShellManager.FormatString(data.parameters[0]); ModuleType m; try { m = (ModuleType)Enum.Parse(typeof(ModuleType), mString); } catch (ArgumentException) { return(Response.ModuleError); } if (!windowManager.ModuleIsOpenableByPlayer(m) || windowManager.ModuleToStatus[m] == Status.Used) { return(Response.ModuleError); } int w = int.Parse(data.parameters[1]); if (!windowManager.WindowAvalible(w)) { return(Response.WindowError); } windowManager.LoadModuleOnWindow(m, w); return(Response.Succes); case Response.ModuleError: shell.Print("The module requested is not avalible. Type 'Modules' for a list of avalible modules."); return(Response.Finished); case Response.WindowError: shell.Print("The requested window is currently in use or doesn't exist. Type 'Windows' for a list of avalible windows"); return(Response.Finished); case Response.Succes: shell.Print("The requested module " + data.parameters[0] + " has succesfully been loaded on window " + data.parameters[1] + "."); return(Response.Finished); } return(Response.Finished); }