Esempio n. 1
0
 public override void ExecuteCommand(EasyClientBase session, PackageInfo packageInfo)
 {
     if (packageInfo.code == 0)
     {
         //收到入群申请
         if (packageInfo.from != SDKClient.Instance.property.CurrentAccount.userID.ToString())
         {
             InviteJoinGroupPackage package = packageInfo as InviteJoinGroupPackage;
             Util.Helpers.Async.Run(async() => await DAL.DALGroupOptionHelper.SendMsgtoDB(package));
         }
     }
     SDKClient.Instance.OnNewDataRecv(packageInfo);
     base.ExecuteCommand(session, packageInfo);
 }
Esempio n. 2
0
        /// <summary>
        /// 确认选中聊天室转发
        /// </summary>
        /// <param name="obj"></param>
        private void SureSelectedChat(object obj)
        {
            var tempChatList = AppData.MainMV.ChatListVM.Items.ToList();

            var          chatVM  = tempChatList.FirstOrDefault(m => m.ID == _chatID && m.IsGroup == _isGroup);
            MessageModel message = null;

            if (chatVM != null && chatVM.Model is ChatModel chatModel)
            {
                var tempMessages = chatModel.Messages.ToList();
                message = tempMessages.FirstOrDefault(m => m.MsgKey == _msgID);
            }
            if (message == null)//判断消息是否已经被删除
            {
                //转发失败,源消息被删除
                // FowardTips = "转发失败,源消息已被删除";
                IsMsgExist = true;
                return;
            }
            if (!AppData.CanInternetAction())
            {
                return;
            }

            if (_isInviteJoin)
            {
                var ids    = new List <int>();
                var groups = new List <int>();

                foreach (var chatItem in SelectedChatList)
                {
                    if (chatItem.IsGroup)
                    {
                        groups.Add(chatItem.ChatID);
                    }
                    else
                    {
                        ids.Add(chatItem.ChatID);
                    }
                }
                InviteJoinGroupPackage.Data data = new InviteJoinGroupPackage.Data();

                //var package = Util.Helpers.Json.ToObject<SDKClient.Model.InviteJoinGroupPackage>(message.MsgSource);
                if (message.Target is GroupModel group)
                {
                    data.groupId           = group.ID;
                    data.groupIntroduction = group.GroupRemark;
                    data.groupName         = group.DisplayName;
                    data.groupPhoto        = group.HeadImgMD5;
                }
                if (message.MsgSource is InviteJoinGroupPackage invite)
                {
                    data.InviteUserId    = invite.data.InviteUserId;
                    data.inviteUserName  = invite.data.inviteUserName;
                    data.inviteUserPhoto = invite.data.inviteUserPhoto;
                }
                data.userIds        = ids;
                data.targetGroupIds = groups;
                var msgId = SDKClient.SDKClient.Instance.InviteJoinGroup(data, true);
                //InviteJoinGroupPackage package = new InviteJoinGroupPackage();
                foreach (var chatItem in SelectedChatList)
                {
                    var tempChat = AppData.MainMV.ChatListVM.GetChat(chatItem.ChatID, chatItem.IsGroup, "", chatItem.ChatID == AppData.Current.LoginUser.ID);
                    var str      = chatItem.IsGroup ? "group" : "single";
                    var strMsgId = msgId + chatItem.ChatID + str;
                    InviteJoinGroupPackage package = new InviteJoinGroupPackage()
                    {
                        id   = msgId,
                        from = AppData.Current.LoginUser.ID.ToString(),
                        to   = chatItem.ChatID.ToString(),
                        time = DateTime.Now,
                        data = data,
                    };
                    SDKClient.DB.messageDB msgDB = new SDKClient.DB.messageDB()
                    {
                        from    = AppData.Current.LoginUser.ID.ToString(),
                        to      = chatItem.ChatID.ToString(),
                        msgTime = DateTime.Now,
                        msgId   = strMsgId,

                        optionRecord = 1,
                        roomId       = chatItem.ChatID,
                        Source       = Util.Helpers.Json.ToJson(package),
                        roomType     = 0
                    };
                    msgDB.content = "群名片";
                    msgDB.msgType = nameof(MessageType.invitejoingroup);
                    tempChat.LoadHisMessage(msgDB, AppData.Current.LoginUser.ID, true);

                    SDKClient.SDKClient.Instance.AppendLocalData_InviteJoinGroupPackage(package, SDKClient.SDKProperty.MessageState.sendfaile, true).ConfigureAwait(true);
                }
            }
            else
            {
                foreach (var chatItem in SelectedChatList)
                {
                    var tempChat = AppData.MainMV.ChatListVM.GetChat(chatItem.ChatID, chatItem.IsGroup, "", chatItem.ChatID == AppData.Current.LoginUser.ID);
                    if (tempChat != null)
                    {
                        tempChat.Chat.LastMsg.TipMessage = message.TipMessage;
                        //if (_isInviteJoin)
                        //{
                        //    tempChat.SendInviteJoinGroupToserver();
                        //}
                        //else
                        tempChat.ReSend(message, true);
                    }
                }
            }


            App.Current.Dispatcher.Invoke(new Action(() =>
            {
                AppData.MainMV.ChatListVM.ResetSort();
                Thread.Sleep(100);
                AppData.FowardWindow?.Close();
            }));
        }