예제 #1
0
        void onmsg(MsgCode msg)
        {
            if (msg == MsgCode.Null)
            {
                return;
            }


            if (msg == MsgCode.User_Login)
            {
                // is user logined
                var user = FC.Get <User> (MsgCode.User_Login_Get);
                if (user != default(User))
                {
                    return;
                }

                var users  = FC.QueryUser();
                var retlen = 0;
                if (users.Length == 1)
                {
                    Msg_User_Login login = new Msg_User_Login();
                    login.user     = users[0];
                    login.password = "******";
                    FC.Send <Msg_User_Login> (MsgCode.User_Login, login, ref retlen);
                }
            }

            this.msg.Show(msg.ToString());
        }
예제 #2
0
        public static string MsgCodeText(MsgCode msgCode)
        {
            var msg = "";

            msg = string.IsNullOrEmpty(msg) ? msgCode.ToString() : msg;
            return(msg);
        }
예제 #3
0
        void FC_onMsging(MsgCode obj)
        {
#if DEBUG
            msg.Show(obj.ToString());
#endif
            if (obj == MsgCode.Volume_Query)
            {
                queryVolume();
            }
        }
예제 #4
0
        public void SendCredentials(LoginType type, string userID = "", string password = "")
        {
            loginType     = type;
            this.userID   = userID;
            this.password = password;

            byte[]  stream        = null;
            MsgCode serverChannel = MsgCode.LoginMessage;

            switch (type)
            {
            case LoginType.Guest:
            {
                return;
            }

            case LoginType.Login:
            {
                LoginC2S loginData = new LoginC2S();

                loginData.loginName = userID;
                loginData.password  = password;
                loginData.UDID      = DeviceUtil.Instance.GetDeviceUniqueIdentifier();
                loginData.MAC       = DeviceUtil.Instance.GetDeviceUniqueIdentifier();
                loginData.ip        = DeviceUtil.Instance.GetDeviceIP();

                stream        = ProtobufUtils.Serialize(loginData);
                serverChannel = MsgCode.LoginMessage;

                UILockManager.SetGroupState(UIEventGroup.Middle, UIEventState.WaitNetwork);

                break;
            }

            case LoginType.Register:
            {
                RegisterC2S register = new RegisterC2S();

                register.ip        = DeviceUtil.Instance.GetDeviceIP();
                register.MAC       = DeviceUtil.Instance.GetDeviceUniqueIdentifier();
                register.loginName = userID;
                register.passWord  = password;

                stream        = ProtobufUtils.Serialize(register);
                serverChannel = MsgCode.RegisterMessage;

                UILockManager.SetGroupState(UIEventGroup.Middle, UIEventState.WaitNetwork);

                break;
            }
            }

            Utils.DebugUtils.Log(Utils.DebugUtils.Type.Login, string.Format("SendCredentials {0} userID: {1} password: {2}", serverChannel.ToString(), userID, password));
            Utils.DebugUtils.Log(Utils.DebugUtils.Type.Login, string.Format("Sending {0} as {1} ", type == LoginType.Register ? "RegisterC2S" : "LoginC2S", serverChannel.ToString()));
            NetworkManager.SendRequest(serverChannel, stream);
        }
예제 #5
0
        /// <summary>
        /// Najde defaultní text daného kódu hlášky.
        /// Najde hlášku ve třídě <see cref="MsgCode"/>, vyhledá tam konstantu zadaného názvu, načte atribut dekorující danou konstantu,
        /// atribut typu <see cref="DefaultMessageTextAttribute"/>, načte jeho hodnotu <see cref="DefaultMessageTextAttribute.DefaultText"/>, a vrátí ji.
        /// </summary>
        /// <param name="messageCode"></param>
        /// <returns></returns>
        public static string GetMessageText(MsgCode messageCode)
        {
            if (_Messages == null)
            {
                _Messages = new Dictionary <MsgCode, string>();
            }
            string text = null;

            if (!_Messages.TryGetValue(messageCode, out text))
            {
                var msgField = typeof(MsgCode).GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static).Where(f => f.Name == messageCode.ToString()).FirstOrDefault();
                if (msgField != null)
                {
                    var defTextAttr = msgField.GetCustomAttributes(typeof(DefaultMessageTextAttribute), true).Cast <DefaultMessageTextAttribute>().FirstOrDefault();
                    if (!(defTextAttr is null || String.IsNullOrEmpty(defTextAttr.DefaultText)))
                    {
                        text = defTextAttr.DefaultText;
                    }
                }

                // Pro daný kód si text uložím vždy, i když nebyl nalezen (=null) = abych jej příště jak osel nehledal znovu:
                lock (_Messages)
                {
                    if (!_Messages.ContainsKey(messageCode))
                    {
                        _Messages.Add(messageCode, text);
                    }
                }
            }
            return(text);
        }
예제 #6
0
 /// <summary>
 /// 通过消息编码和参数,获取消息
 /// </summary>
 /// <param name="paramMsgCode">消息编码(MsgCode.XXX)</param>
 /// <param name="paramMsgParam">消息参数数组(MsgParam.XXX)</param>
 /// <returns></returns>
 public static string GetMsg(MsgCode paramMsgCode, object[] paramMsgParam)
 {
     return(String.Format(dicMsg[paramMsgCode.ToString()], paramMsgParam));
 }
예제 #7
0
 /// <summary>
 /// 通过消息编码和参数,获取消息
 /// </summary>
 /// <param name="paramMsgCode">消息编码(MsgCode.XXX)</param>
 /// <param name="paramMsgParam1">消息参数1(MsgParam.XXX)</param>
 /// <param name="paramMsgParam2">消息参数1(MsgParam.XXX)</param>
 /// <returns></returns>
 public static string GetMsg(MsgCode paramMsgCode, string paramMsgParam1, string paramMsgParam2)
 {
     return(String.Format(dicMsg[paramMsgCode.ToString()], paramMsgParam1, paramMsgParam2));
 }
예제 #8
0
 /// <summary>
 /// 通过消息编码,获取消息
 /// </summary>
 /// <param name="paramMsgCode">消息编码(MsgCode.XXX)</param>
 /// <returns></returns>
 public static string GetMsg(MsgCode paramMsgCode)
 {
     return(dicMsg[paramMsgCode.ToString()]);
 }