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); }
/// <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(); })); }