⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 personalgroupmanager.cs

📁 破解的飞信源代码
💻 CS
📖 第 1 页 / 共 5 页
字号:
                        using (IEnumerator<PersonalGroup> enumerator = base.Owner.PersonalGroups.GetEnumerator())
                        {
                            while (enumerator.MoveNext())
                            {
                                PersonalGroup group2 = enumerator.get_Current();
                                list.Add(group2);
                            }
                        }
                    }
                }
                List<PersonalGroup>.Enumerator enumerator2 = list.GetEnumerator();
                try
                {
                    while (enumerator2.MoveNext())
                    {
                        PersonalGroup group3 = enumerator2.get_Current();
                        writer.WriteStartElement("group");
                        writer.WriteAttributeString("uri", group3.Uri.Raw);
                        if (!string.IsNullOrEmpty(group3.AttributeVersion))
                        {
                            writer.WriteAttributeString("attributes-version", group3.AttributeVersion);
                        }
                        writer.WriteEndElement();
                    }
                }
                finally
                {
                    enumerator2.Dispose();
                }
                writer.WriteEndElement();
            });
            req.Message.Body = tw.ToString();
            tw.Dispose();
            req.FinalResponseReceived += new EventHandler<SipResponseReceivedEventArgs>(this, (IntPtr) this.finalResponseReceived_AsyncGetGroupsInfo);
            ErrorHelper.HandleSendRequestErrorAndTimeout(req);
            base.Owner.SendSipMessage(req);
        }

        public bool AsyncGetGroupList(AsyncBizOperation op)
        {
            base.Owner.PersonalGroups.GroupLoadStatus = PersonalGroupLoadStatus.Loading;
            SipRequest req = base.Owner.CreateSipRequest("S");
            req.Message.AddHeader(new SipcEventHeader("PGGetGroupList"));
            req.Context = op;
            StringWriter tw = new StringWriter();
            XmlHelper.CreateXmlWriterForSipRequest(tw, null, delegate (XmlWriter writer, object context) {
                writer.WriteStartElement("group-list");
                if (!string.IsNullOrEmpty(base.Owner.PersonalGroups.Version))
                {
                    writer.WriteAttributeString("version", base.Owner.PersonalGroups.Version);
                }
                writer.WriteAttributeString("attributes", "name;identity");
                writer.WriteEndElement();
            });
            req.Message.Body = tw.ToString();
            tw.Dispose();
            req.FinalResponseReceived += new EventHandler<SipResponseReceivedEventArgs>(this, (IntPtr) this.finalResponseReceived_AsyncGetGroupList);
            req.SendMessageFailed += new EventHandler<FailedEventArgs>(this, (IntPtr) this.<AsyncGetGroupList>b__b);
            req.WaitResponseTimeout += delegate {
                base.Owner.PersonalGroups.GroupLoadStatus = PersonalGroupLoadStatus.Failed;
                this.DoAfterGetGroupList();
            };
            ErrorHelper.HandleSendRequestErrorAndTimeout(req);
            base.Owner.SendSipMessage(req);
            return true;
        }

        public void AsyncGetGroupMemberList(PersonalGroup group, AsyncBizOperation op)
        {
            <>c__DisplayClass24 class2;
            SipRequest req = base.Owner.CreateSipRequest("S");
            req.Message.AddHeader(new SipcEventHeader("PGGetGroupMembers"));
            op.ContextForBiz = group;
            req.Context = op;
            StringWriter tw = new StringWriter();
            XmlHelper.CreateXmlWriterForSipRequest(tw, group, delegate (XmlWriter writer, object context) {
                PersonalGroup group1 = context as PersonalGroup;
                writer.WriteStartElement("groups");
                writer.WriteAttributeString("attributes", "member-uri;member-nickname;member-iicnickname;member-identity");
                writer.WriteStartElement("group");
                writer.WriteAttributeString("uri", group1.Uri.Raw);
                if (!string.IsNullOrEmpty(group1.Members.MainVersion))
                {
                    writer.WriteAttributeString("members-major-version", group1.Members.MainVersion);
                }
                if (!string.IsNullOrEmpty(group1.Members.SecondVersion))
                {
                    writer.WriteAttributeString("members-minor-version", group1.Members.SecondVersion);
                }
                writer.WriteEndElement();
                writer.WriteEndElement();
            });
            req.Message.Body = tw.ToString();
            tw.Dispose();
            req.FinalResponseReceived += new EventHandler<SipResponseReceivedEventArgs>(this, (IntPtr) this.finalResponseReceived_AsyncGetGroupMemberList);
            ErrorHelper.HandleSendRequestErrorAndTimeout(req);
            req.SendMessageFailed += new EventHandler<FailedEventArgs>(class2, (IntPtr) this.<AsyncGetGroupMemberList>b__21);
            req.WaitResponseTimeout += delegate {
                group.MemberLoadStatus = PersonalGroupLoadStatus.Failed;
                group.OnMemberLoadStatusChanged(new GroupLoadStatusChangedEventArgs(PersonalGroupLoadStatus.Failed, false));
                this.DoAfterGetGroupMemberList(group);
            };
            base.Owner.SendSipMessage(req);
        }

        public void AsyncGetGroupResponsibility(AsyncBizOperation op)
        {
            if (!string.IsNullOrEmpty(base.Owner.Configuration.SystemSetting.SysClientSetting.NN_ResponsibilityDeclUrl))
            {
                ThreadPool.QueueUserWorkItem(new WaitCallback(this.GetGroupResponsibilityInThread), op);
            }
        }

        public void AsyncGetPersonalInfo(PersonalGroup group, AsyncBizOperation op)
        {
            SipRequest req = base.Owner.CreateSipRequest("S");
            req.Message.AddHeader(new SipcEventHeader("PGGetPersonalInfo"));
            op.ContextForBiz = group;
            req.Context = op;
            StringWriter tw = new StringWriter();
            XmlHelper.CreateXmlWriterForSipRequest(tw, group, delegate (XmlWriter writer, object context) {
                writer.WriteStartElement("personal-properties");
                writer.WriteAttributeString("attributes", "all");
                writer.WriteStartElement("personal-property");
                writer.WriteAttributeString("group-uri", (context as PersonalGroup).Uri.Raw);
                writer.WriteEndElement();
                writer.WriteEndElement();
            });
            req.Message.Body = tw.ToString();
            tw.Dispose();
            req.FinalResponseReceived += new EventHandler<SipResponseReceivedEventArgs>(this, (IntPtr) this.finalResponseReceived_AsyncGetPersonalProperty);
            ErrorHelper.HandleSendRequestErrorAndTimeout(req);
            base.Owner.SendSipMessage(req);
        }

        public void AsyncHandleGroupInvite(string groupUri, bool result, AsyncBizOperation op)
        {
            SipRequest req = base.Owner.CreateSipRequest("S");
            req.Message.AddHeader(new SipcEventHeader("PGHandleInviteJoinGroup"));
            op.ContextForBiz = groupUri;
            req.Context = op;
            StringWriter tw = new StringWriter();
            XmlHelper.CreateXmlWriterForSipRequest(tw, groupUri, delegate (XmlWriter writer, object context) {
                writer.WriteStartElement("handle");
                writer.WriteAttributeString("group-uri", groupUri);
                writer.WriteAttributeString("invitee-nickname", this.Owner.Nickname);
                writer.WriteAttributeString("action", result ? "1" : "2");
                writer.WriteEndElement();
            });
            req.Message.Body = tw.ToString();
            tw.Dispose();
            req.FinalResponseReceived += new EventHandler<SipResponseReceivedEventArgs>(this, (IntPtr) this.finalResponseReceived_AsyncHandleGroupInvite);
            req.WaitResponseTimeout += new EventHandler(this.req_WaitResponseTimeout);
            ErrorHelper.HandleSendRequestErrorAndTimeout(req);
            base.Owner.SendSipMessage(req);
        }

        public void AsyncHandleGroupJoin(PersonalGroupMember member, string approveAdvice, string note, AsyncBizOperation op)
        {
            SipRequest req = base.Owner.CreateSipRequest("S");
            req.Message.AddHeader(new SipcEventHeader("PGHandleApplication"));
            op.ContextForBiz = member;
            req.Context = op;
            StringWriter tw = new StringWriter();
            XmlHelper.CreateXmlWriterForSipRequest(tw, null, delegate (XmlWriter writer, object context) {
                writer.WriteStartElement("authorizes");
                writer.WriteStartElement("authorize");
                writer.WriteAttributeString("group-uri", member.OwnerGroup.Uri.Raw);
                writer.WriteAttributeString("apply-user-uri", member.Uri.Raw);
                writer.WriteAttributeString("approve-advice", approveAdvice);
                writer.WriteAttributeString("note", note);
                writer.WriteEndElement();
            });
            req.Message.Body = tw.ToString();
            tw.Dispose();
            req.FinalResponseReceived += new EventHandler<SipResponseReceivedEventArgs>(this, (IntPtr) this.finalResponseReceived_AsyncHandleGroupJoin);
            ErrorHelper.HandleSendRequestErrorAndTimeout(req);
            base.Owner.SendSipMessage(req);
        }

        public void AsyncInviteFriends(List<Imps.Client.Core.Contact> inviteList, PersonalGroup group, AsyncBizOperation op)
        {
            if ((((inviteList != null) && (inviteList.get_Count() > 0)) && (group != null)) && (op != null))
            {
                SipRequest req = base.Owner.CreateSipRequest("S");
                req.Message.AddHeader(new SipcEventHeader("PGInviteJoinGroup"));
                op.ContextForBiz = group;
                req.Context = op;
                StringWriter tw = new StringWriter();
                XmlHelper.CreateXmlWriterForSipRequest(tw, inviteList, delegate (XmlWriter writer, object context) {
                    List<Imps.Client.Core.Contact> list = context as List<Imps.Client.Core.Contact>;
                    writer.WriteStartElement("group");
                    writer.WriteAttributeString("uri", group.Uri.Raw);
                    writer.WriteAttributeString("inviter-nickname", this.Owner.Nickname);
                    List<Imps.Client.Core.Contact>.Enumerator enumerator = list.GetEnumerator();
                    try
                    {
                        while (enumerator.MoveNext())
                        {
                            Imps.Client.Core.Contact contact = enumerator.get_Current();
                            writer.WriteStartElement("user");
                            writer.WriteAttributeString("uri", contact.Uri.Raw);
                            writer.WriteAttributeString("nickname", contact.DisplayName);
                            writer.WriteEndElement();
                        }
                    }
                    finally
                    {
                        enumerator.Dispose();
                    }
                    writer.WriteEndElement();
                });
                req.Message.Body = tw.ToString();
                tw.Dispose();
                req.FinalResponseReceived += new EventHandler<SipResponseReceivedEventArgs>(this, (IntPtr) this.finalResponseReceived_AsyncInviteFriends);
                req.WaitResponseTimeout += new EventHandler(this.req_WaitResponseTimeout);
                ErrorHelper.HandleSendRequestErrorAndTimeout(req);
                base.Owner.SendSipMessage(req);
                IMessage msg = new InstantMessage();
                msg.Type = Imps.Client.Core.MessageType.InviteJoinGroup;
                msg.Sender = new Player(base.Owner.Uri.Raw, base.Owner.Nickname, PlayerType.User);
                msg.Extend = group.Uri.Id;
                msg.Time = Imps.Client.Core.User.ServerTime;
                msg.ID = Guid.NewGuid().ToString();
                StringBuilder builder = new StringBuilder();
                builder.Append("邀请");
                List<Imps.Client.Core.Contact>.Enumerator enumerator = inviteList.GetEnumerator();
                try
                {
                    while (enumerator.MoveNext())
                    {
                        Imps.Client.Core.Contact contact = enumerator.get_Current();
                        msg.Receivers.Add(new Player(contact.Uri.Raw, contact.DisplayName, PlayerType.Contact));
                        builder.Append(contact.DisplayName);
                        builder.Append(",");
                    }
                }
                finally
                {
                    enumerator.Dispose();
                }
                char ch = builder[builder.Length - 1];
                if (ch.Equals(','))
                {
                    builder.Remove(builder.Length - 1, 1);
                }
                builder.Append("加入群!");
                msg.Body = builder.ToString();
                base.Owner.HistoryManager.SaveMessage(msg);
            }
        }

        public bool AsyncSearchGroup(int groupId, AsyncBizOperation op)
        {
            SipRequest req = base.Owner.CreateSipRequest("S");
            req.Message.AddHeader(new SipcEventHeader("PGSearchGroup"));
            op.ContextForBiz = groupId;
            req.Context = op;
            StringWriter tw = new StringWriter();
            XmlHelper.CreateXmlWriterForSipRequest(tw, groupId, delegate (XmlWriter writer, object context) {
                int num = (int) context;
                writer.WriteStartElement("group");
                writer.WriteAttributeString("sid", num.ToString());
                writer.WriteEndElement();
                writer.WriteStartElement("result-fields");
                writer.WriteAttributeString("attributes", "all");
                writer.WriteEndElement();
            });
            req.Message.Body = tw.ToString();
            tw.Dispose();
            req.FinalResponseReceived += new EventHandler<SipResponseReceivedEventArgs>(this, (IntPtr) this.finalResponseReceived_AsyncSearchPersonalGroup);
            ErrorHelper.HandleSendRequestErrorAndTimeout(req);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -