public static CommandResult ExecuteCommand(ICommand command) { if (!ValidateArguments(command)) { return new CommandResult { Success = false, Message = "Invalid arguments for command: " + command.Type + "\n" + Help.Action(command.Type.ToString()) } } ; switch (command.Type) { case CommandType.Help: return(Help.Action()); case CommandType.Play: return(new CommandResult() { Success = true, Message = "Beginning Game..." }); case CommandType.Quit: return(new CommandResult() { Success = true, Message = "Quitting Game..." }); case CommandType.Move: return(Move.Action(command as GameCommand)); default: return(Help.Action()); } } }