Esempio n. 1
0
        public static ICommand CreateCommand(CommandData cmdData)
        {
            switch (cmdData.CommandType)
            {
                case CommandType.ToSelf:
                    return new ToSelfCommand(cmdData);

                case CommandType.Broardcast:
                    return new BroardcastCommand(cmdData);
            }

            return null;
        }
Esempio n. 2
0
        public static CommandData Parse(string cmd, out string errorInfo)
        {
            var cmdData = new CommandData();
            errorInfo = null;

            var parts = cmd.Split(ServerDefines.CommandSplitChar);
            foreach (var part in parts)
            {
                var index = part.IndexOf('=');
                if (index <= 0 || index + 1 >= part.Length)
                {
                    errorInfo = string.Format("Invalid command parameter:{0}", part);
                    return null;
                }

                var key = part.Substring(0, index).Trim().ToUpper();
                var value = part.Substring(index + 1).Trim();

                switch (key)
                {
                    case ServerDefines.CommandType:
                        if (value.Equals(ServerDefines.ToSelf, StringComparison.OrdinalIgnoreCase))
                        {
                            cmdData.CommandType = CommandType.ToSelf;
                        }

                        else if (value.Equals(ServerDefines.Broardcast, StringComparison.OrdinalIgnoreCase))
                        {
                            cmdData.CommandType = CommandType.Broardcast;
                        }
                        else
                        {
                            errorInfo = string.Format("Invalid command type:{0}", part);
                            return null;
                        }

                        break;

                    case ServerDefines.Message:
                        cmdData.Request.Message = value;
                        break;

                    default:
                        errorInfo = string.Format("Unknown command type.");
                        return null;
                }
            }

            return cmdData;
        }
Esempio n. 3
0
 public ToSelfCommand(CommandData cmdData)
 {
     _cmdData = cmdData;
 }
Esempio n. 4
0
        private void ProcessCommand(CommandData cmdData)
        {
            Logger.Instance().InfoWithFormat(" >> Process Command {0} from {1}:{2}",
                cmdData.CommandType,
                cmdData.Sender.ConnectionInfo.ClientIpAddress,
                cmdData.Sender.ConnectionInfo.Id);

            var cmdObj = CommandFactory.CreateCommand(cmdData);
            cmdObj.Excute();
        }
Esempio n. 5
0
 public BroardcastCommand(CommandData cmdData)
 {
     _cmdData = cmdData;
 }