Пример #1
0
    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;
        }
    }
Пример #2
0
        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);
        }