public static List <ConversionalQueue> getUsersFromRoom(ChatRoomData room, List <ConversionalQueue> allUsers) { List <ConversionalQueue> usersToPrepare = new List <ConversionalQueue>(); foreach (var user in allUsers) { if (user.RoomId == room.Id) { if (user.UserId == room.FirstMemberId) { usersToPrepare.Add(user); } else if (user.UserId == room.SecondMemberId) { usersToPrepare.Add(user); } else if (user.UserId == room.ThirdMemberId) { usersToPrepare.Add(user); } else if (user.UserId == room.FourMemberId) { usersToPrepare.Add(user); } else if (user.UserId == room.FiftyMemberId) { usersToPrepare.Add(user); } } } return(usersToPrepare); }
private bool cheeckUsurInRoom(ChatRoomData room, string idUser) { bool output = false; if (room.FirstMemberId == idUser) { output = true; } else if (room.SecondMemberId == idUser) { output = true; } else if (room.ThirdMemberId == idUser) { output = true; } else if (room.FourMemberId == idUser) { output = true; } else if (room.FiftyMemberId == idUser) { output = true; } return(output); }
private bool checkIsUserInRoom(ChatRoomData room, string userId) { bool userFlag = false; if (room.FirstMemberId == userId) { userFlag = true; } else if (room.SecondMemberId == userId) { userFlag = true; } else if (room.ThirdMemberId == userId) { userFlag = true; } else if (room.FourMemberId == userId) { userFlag = true; } else if (room.FiftyMemberId == userId) { userFlag = true; } return(userFlag); }
private bool findInvitationsUserInRoom(ChatRoomData room, string user, string invistationUser) { bool firstUserFlag = false, secondUserFalg = false; if (room.FirstMemberId == user) { firstUserFlag = true; } else if (room.FirstMemberId == invistationUser) { secondUserFalg = true; } if (room.SecondMemberId == user) { firstUserFlag = true; } else if (room.SecondMemberId == invistationUser) { secondUserFalg = true; } if (room.ThirdMemberId == user) { firstUserFlag = true; } else if (room.ThirdMemberId == invistationUser) { secondUserFalg = true; } if (room.FourMemberId == user) { firstUserFlag = true; } else if (room.FourMemberId == invistationUser) { secondUserFalg = true; } if (room.FiftyMemberId == user) { firstUserFlag = true; } else if (room.FiftyMemberId == invistationUser) { secondUserFalg = true; } if (firstUserFlag && secondUserFalg) { return(true); } return(false); }
private RoomDataModel getChatData(ChatRoomData room, string id, List <ConversionalQueue> members, List <UserApp> users) { RoomDataModel outputModel = new RoomDataModel(); outputModel.IdRoom = room.Id; outputModel.RoomName = room.GroupName; outputModel.SederId = id; double actualTime = room.TimeOfStart.Subtract(DateTime.Now).TotalMilliseconds; outputModel.TimeConfersation = 900000 + actualTime; foreach (var user in users) { foreach (var member in members) { if (member.UserId == user.Id) { if (member.SiteName == RoomSides.FirstWiew) { outputModel.FirstMember = new ChatMemberModel { Email = user.Email, FakeName = member.FakeName, SiteName = member.SiteName, Number = 1, }; if (member.UserId == id) { outputModel.FirstMember.IsSender = true; outputModel.SederName = member.FakeName; } else { outputModel.FirstMember.IsSender = false; } } else if (member.SiteName == RoomSides.SecondWiew) { outputModel.SecondMember = new ChatMemberModel { Email = user.Email, FakeName = member.FakeName, SiteName = member.SiteName, Number = 1, }; if (member.UserId == id) { outputModel.SecondMember.IsSender = true; outputModel.SederName = member.FakeName; } else { outputModel.SecondMember.IsSender = false; } } else if (member.SiteName == RoomSides.ThirdWiew) { outputModel.ThirdMember = new ChatMemberModel { Email = user.Email, FakeName = member.FakeName, SiteName = member.SiteName, Number = 1, }; if (member.UserId == id) { outputModel.ThirdMember.IsSender = true; outputModel.SederName = member.FakeName; } else { outputModel.ThirdMember.IsSender = false; } } else if (member.SiteName == RoomSides.FourWiew) { outputModel.FourMember = new ChatMemberModel { Email = user.Email, FakeName = member.FakeName, SiteName = member.SiteName, Number = 1, }; if (member.UserId == id) { outputModel.FourMember.IsSender = true; outputModel.SederName = member.FakeName; } else { outputModel.FourMember.IsSender = false; } } else if (member.SiteName == RoomSides.FiftyWiew) { outputModel.FiftyMember = new ChatMemberModel { Email = user.Email, FakeName = member.FakeName, SiteName = member.SiteName, Number = 1, }; if (member.UserId == id) { outputModel.FiftyMember.IsSender = true; outputModel.SederName = member.FakeName; } else { outputModel.FiftyMember.IsSender = false; } } } } } return(outputModel); }
protected override void onSuccess(GetChatroomMemberDetailRequest request, GetChatroomMemberDetailResponse response) { RetConst ret = (RetConst)response.BaseResponse.Ret; if (ret != RetConst.MM_OK) { Log.e("NSGetChatroomMemberDetail", "send failed ret =" + ret); } else { //string str = ""; List <Contact> contactList = new List <Contact>(); string ChatroomPath = ConstantsProtocol.CurrentDirectory + "\\User\\" + AccountMgr.curUserName + "\\" + ConstantsProtocol.ChatRoomPath + "\\" + response.ChatroomUserName + ".xml"; if (response.NewChatroomData.ChatRoomMemberList.Count > 0) { ChatRoomData ChatRoomData = new ChatRoomData(); ChatRoomData.ChatRoomOwner = mChatRoomContact.ChatRoomOwner; if (File.Exists(ChatroomPath)) { XDocument xdocument; try { xdocument = XDocument.Load(ChatroomPath); } catch (Exception e) { Log.e("NSGetChatroomMemberDetail", "xml filed" + e.StackTrace.ToString()); return; } ChatRoomData = Util.Deserialize <ChatRoomData>(ChatRoomData, xdocument.ToString()); XElement xmlMemberCount = xdocument.Root.Element("ChatRoomMemberCount"); int MemberCount = int.Parse(xmlMemberCount.Value); bool MemberFlag = false; if (MemberCount == response.NewChatroomData.ChatRoomMemberList.Count) { return; } if (response.NewChatroomData.ChatRoomMemberList.Count > MemberCount)//有人入群 { MemberFlag = true; } if (MemberFlag) { foreach (ChatRoomMemberInfo info in response.NewChatroomData.ChatRoomMemberList) { var elements = xdocument.Root.Elements("ChatRoomMemberData") .Where(e => (string)e.Element("UserName").Value == info.UserName) // .OrderByDescending(e => (string)e.Element("UserName")) .ToList(); if (elements.Count == 1) { ///替换成新的节点 elements.First().ReplaceNodes( new XElement("UserName", info.UserName), new XElement("NickName", info.NickName), new XElement("InviterUserName", info.InviterUserName), new XElement("BigHeadImgUrl", info.BigHeadImgUrl), new XElement("DisplayName", info.DisplayName) ); } if (elements.Count == 0) { string strInfo = MemberFlag == true ? "有人入群了" : "有退群了"; Log.w("NSGetChatroomMemberDetail", strInfo + "nickname " + info.NickName + "user name " + info.UserName + " headUrl " + info.BigHeadImgUrl); XElement xmlMemberData = new XElement("ChatRoomMemberData", new XElement("UserName", info.UserName), new XElement("NickName", info.NickName), new XElement("InviterUserName", info.InviterUserName), new XElement("BigHeadImgUrl", info.BigHeadImgUrl), new XElement("DisplayName", info.DisplayName) ); xdocument.Root.Add(xmlMemberData); //ServiceCenter.sendAppMsg.doSceneSendAppMsg(mChatRoomContact.UserName.String, 1, "<msg><appmsg appid=\"\" sdkver=\"0\"><title>好友入群提示</title><des>" + info.NickName + "</des><action></action><type>16</type><showtype>0</showtype><mediatagname></mediatagname><messageext></messageext><messageaction></messageaction><content></content><contentattr>0</contentattr><url></url><lowurl></lowurl><dataurl></dataurl><lowdataurl></lowdataurl><extinfo></extinfo><sourceusername></sourceusername><sourcedisplayname></sourcedisplayname><commenturl></commenturl><thumburl>" + info.BigHeadImgUrl + "</thumburl><carditem><from_scene>2</from_scene><card_type>0</card_type><card_type_name>兑换券</card_type_name><card_id>phbbzs8tc_BrOuozQnjw4FQJNs01</card_id><color>#FD9931</color><brand_name>加我为您服务</brand_name><card_ext></card_ext><share_from_scene>1</share_from_scene></carditem>(null)<md5></md5></appmsg></msg>"); } } xmlMemberCount.ReplaceNodes(response.NewChatroomData.ChatRoomMemberList.Count); } else { for (int i = ChatRoomData.ChatRoomMemberData.Count - 1; i >= 0; i--) { var elements = response.NewChatroomData.ChatRoomMemberList .Where(e => e.UserName == ChatRoomData.ChatRoomMemberData[i].UserName) .ToList(); if (elements.Count == 0)//说明有人退群了 { string strInfo = MemberFlag == true ? "有人入群了" : "有退入群了"; Log.w("NSGetChatroomMemberDetail", strInfo + "nickname " + ChatRoomData.ChatRoomMemberData[i].NickName + "user name " + ChatRoomData.ChatRoomMemberData[i].UserName + " headUrl " + ChatRoomData.ChatRoomMemberData[i].BigHeadImgUrl); // ServiceCenter.sendAppMsg.doSceneSendAppMsg(mChatRoomContact.UserName.String, 1, "<msg><appmsg appid=\"\" sdkver=\"0\"><title>好友退群提示</title><des>" + ChatRoomData.ChatRoomMemberData[i].NickName + "</des><action></action><type>16</type><showtype>0</showtype><mediatagname></mediatagname><messageext></messageext><messageaction></messageaction><content></content><contentattr>0</contentattr><url></url><lowurl></lowurl><dataurl></dataurl><lowdataurl></lowdataurl><extinfo></extinfo><sourceusername></sourceusername><sourcedisplayname></sourcedisplayname><commenturl></commenturl><thumburl>" + ChatRoomData.ChatRoomMemberData[i].BigHeadImgUrl + "</thumburl><carditem><from_scene>2</from_scene><card_type>0</card_type><card_type_name>兑换券</card_type_name><card_id>phbbzs8tc_BrOuozQnjw4FQJNs01</card_id><color>#FD9931</color><brand_name>加我为您服务</brand_name><card_ext></card_ext><share_from_scene>1</share_from_scene></carditem>(null)<md5></md5></appmsg></msg>"); ChatRoomData.ChatRoomMemberData.RemoveAt(i); } } ChatRoomData.ChatRoomMemberCount = response.NewChatroomData.ChatRoomMemberList.Count; string xmlString = Util.Serializer <ChatRoomData>(ChatRoomData); XDocument.Parse(xmlString).Save(ChatroomPath); return; } try { xdocument.Save(ChatroomPath); } catch (Exception e) { Log.e("NSGetChatroomMemberDetail", "Save xml filed" + e.StackTrace.ToString()); return; } } else { ChatRoomData.ChatRoomMemberData = new List <ChatRoomXmlData.ChatRoomMemberData>(); foreach (ChatRoomMemberInfo info in response.NewChatroomData.ChatRoomMemberList) { ChatRoomXmlData.ChatRoomMemberData item = new ChatRoomXmlData.ChatRoomMemberData { UserName = info.UserName, NickName = info.NickName, InviterUserName = info.InviterUserName, BigHeadImgUrl = info.BigHeadImgUrl, DisplayName = info.DisplayName }; ChatRoomData.ChatRoomMemberData.Add(item); } ChatRoomData.ChatRoomMemberCount = response.NewChatroomData.ChatRoomMemberList.Count; string xmlString = Util.Serializer <ChatRoomData>(ChatRoomData); XDocument.Parse(xmlString).Save(ChatroomPath); } } if (response.NewChatroomData.ChatRoomMemberList.Count == 0)//被移除群聊 { File.Delete(ChatroomPath); } } }