Example #1
0
        public void GetOffLineChatMessHandler(GetOffLineChatMessResponseModel responseModel)
        {
            this.Invoke(new Action(() => {
                SbItemTimer.Start();
                ChatForm chatForm = null;
                lock (this)
                {
                    if (dicChats.ContainsKey(responseModel.fromid))
                    {
                        chatForm = dicChats[responseModel.fromid];
                    }
                    else if (dicFriends.ContainsKey(responseModel.fromid))
                    {
                        GetFriendsResponseModel friendModel = dicFriends[responseModel.fromid];
                        chatForm = new ChatForm(friendModel);
                        dicChats.Add(friendModel.friendid, chatForm);
                    }
                }
                if (chatForm != null)
                {
                    chatForm.ShowMessage(responseModel.createtime, responseModel.nickName, responseModel.content);
                }
                else
                {
                    lock (this)
                    {
                        GetFriendsResponseModel friendModel = new GetFriendsResponseModel();
                        friendModel.faceimg  = responseModel.faceimg;
                        friendModel.friendid = responseModel.fromid;
                        friendModel.nickName = responseModel.nickName;
                        chatForm             = new ChatForm(friendModel);
                        chatForm.ShowMessage(responseModel.createtime, responseModel.nickName, responseModel.content);
                    }
                }

                lock (this) {
                    if (!chatForm.Visible)
                    {
                        if (dicFriends.ContainsKey(responseModel.fromid))
                        {
                            if (dicItems.ContainsKey(dicFriends[responseModel.fromid]))
                            {
                                MyItem sbItem     = dicItems[dicFriends[responseModel.fromid]];
                                sbItem.isShandong = true;
                            }
                        }
                    }
                }
            }));
            Application.DoEvents();
        }
Example #2
0
 private static void Ws_OnMessage(object sender, MessageEventArgs e)
 {
     try {
         string     json         = e.Data;
         CommonMess responseMess = JsonHelper.DeserializeObject <CommonMess>(json);
         int        messType     = -responseMess.messType;
         if (messType == MessType.AddFriend)
         {
             searchFormFriend.AddFriendOK();
         }
         else if (messType == MessType.AgreeAddFriend)
         {
         }
         else if (messType == MessType.GetFriends)
         {
             GetFriendsResponseModel responseModel = JsonHelper.DeserializeObject <GetFriendsResponseModel>(responseMess.content);
             mainForm.GetFriendsRespondeHandler(responseModel);
         }
         else if (messType == MessType.GetOffLineChatMess)
         {
             GetOffLineChatMessResponseModel responseModel = JsonHelper.DeserializeObject <GetOffLineChatMessResponseModel>(responseMess.content);
             mainForm.GetOffLineChatMessHandler(responseModel);
         }
         else if (messType == MessType.GetSysMess)
         {
             GetSysMessResponseModel responseModel = JsonHelper.DeserializeObject <GetSysMessResponseModel>(responseMess.content);
             SysMessHandler(responseModel);
         }
         else if (messType == MessType.Login)
         {
             LoginResponseModel responseModel = JsonHelper.DeserializeObject <LoginResponseModel>(responseMess.content);
             SystemHelper.currentUser = responseModel;
             loginForm.LoginOK(responseModel);
         }
         else if (messType == MessType.LoginOut)
         {
         }
         else if (messType == MessType.Register)
         {
             RegisetResponseModel responseModel = JsonHelper.DeserializeObject <RegisetResponseModel>(responseMess.content);
             registerForm.RegisterOK(responseModel);
         }
         else if (messType == MessType.SearchFriend)
         {
             SearchFriendResponseModel responseModel = JsonHelper.DeserializeObject <SearchFriendResponseModel>(responseMess.content);
             searchFormFriend.SerarchFriendsResult(responseModel);
         }
         else if (messType == MessType.SendChatMess)
         {
         }
         else if (messType == MessType.EditInfo)
         {
             EditInfoResponseModel respondeModel = JsonHelper.DeserializeObject <EditInfoResponseModel>(responseMess.content);
             if (respondeModel.state == 1)
             {
                 SystemHelper.currentUser.age      = respondeModel.age;
                 SystemHelper.currentUser.blood    = respondeModel.blood;
                 SystemHelper.currentUser.conste   = respondeModel.conste;
                 SystemHelper.currentUser.faceimg  = respondeModel.faceimg;
                 SystemHelper.currentUser.gender   = respondeModel.gender;
                 SystemHelper.currentUser.nickname = respondeModel.nickname;
                 if (mainForm != null && mainForm.IsHandleCreated)
                 {
                     mainForm.Invoke(new Action(() => {
                         mainForm.ShowSelfInfo();
                     }));
                     Application.DoEvents();
                 }
             }
             else
             {
                 MessageBox.Show("用户信息修改失败!");
             }
         }
     }
     catch (Exception err) {
         MessageBox.Show(err.ToString(), "OnMessageError");
     }
 }