Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
                }
            }
        }