亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? messagehistorymanager.cs

?? 飛信的收發使用csharp進行開發
?? CS
?? 第 1 頁 / 共 2 頁
字號:
?namespace Imps.Client.Pc
{
    using Imps.Client.Base;
    using Imps.Client.Core;
    using Imps.Client.Resource;
    using Imps.Client.Utils;
    using Imps.Client.Utils.Win32;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Net;
    using System.Runtime.CompilerServices;
    using System.Text;
    using System.Threading;
    using System.Windows.Forms;
    using System.Xml;

    public class MessageHistoryManager : IMessageHistoryManager
    {
        private IFrameworkWindow _framework;
        private MessageHistoryForm _msgForm;
        private Dictionary<Imps.Client.Core.Contact, MessageHistoryForm> _msgHisForms;

        public MessageHistoryManager(IFrameworkWindow framework)
        {
            this._framework = framework;
        }

        public void AsyncDelete(Imps.Client.Core.Contact contact)
        {
            DeleteXmlContentDelegate deleteCallBack = null;
            try
            {
                string messageHistoryPath = this.GetMessageHistoryPath(contact);
                if (System.IO.File.Exists(messageHistoryPath))
                {
                    System.IO.File.Delete(messageHistoryPath);
                }
                if (deleteCallBack == null)
                {
                    deleteCallBack = delegate {
                        return string.Format("<contacts><uri>{0}</uri></contacts>", contact.Uri.Raw);
                    };
                }
                this.AsyncDeleteServerMessageHistory(deleteCallBack);
            }
            catch (Exception exception)
            {
                ClientLogger.WriteException(exception);
            }
        }

        public void AsyncDelete(List<Imps.Client.Core.Contact> contacts)
        {
            for (int j = 0; j < contacts.Count; j++)
            {
                string messageHistoryPath = this.GetMessageHistoryPath(contacts[j]);
                if (System.IO.File.Exists(messageHistoryPath))
                {
                    System.IO.File.Delete(messageHistoryPath);
                }
            }
            this.AsyncDeleteServerMessageHistory(delegate {
                StringBuilder builder = new StringBuilder();
                builder.Append("<contacts>");
                for (int k = 0; i < contacts.Count; i++)
                {
                    builder.Append(string.Format("<uri>{0}</uri>", contacts[i].Uri.Raw));
                }
                builder.Append("</contacts>");
                return builder.ToString();
            });
        }

        public void AsyncDelete(Imps.Client.Core.Contact contact, IList<string> msgIds)
        {
            DeleteXmlContentDelegate deleteCallBack = null;
            try
            {
                if (msgIds.Count > 0)
                {
                    string messageHistoryPath = this.GetMessageHistoryPath(contact);
                    if (System.IO.File.Exists(messageHistoryPath))
                    {
                        XmlDocument document = new XmlDocument();
                        document.Load(messageHistoryPath);
                        foreach (string str2 in msgIds)
                        {
                            XmlNode oldChild = document.DocumentElement.SelectSingleNode("Message[@MessageID='" + str2 + "']");
                            if (oldChild != null)
                            {
                                document.DocumentElement.RemoveChild(oldChild);
                            }
                        }
                        document.Save(messageHistoryPath);
                    }
                    if (deleteCallBack == null)
                    {
                        deleteCallBack = delegate {
                            StringBuilder builder = new StringBuilder();
                            builder.Append("<records>");
                            foreach (string str in msgIds)
                            {
                                builder.Append(string.Format("<record id=\"{0}\"/>", str));
                            }
                            builder.Append("</records>");
                            return builder.ToString();
                        };
                    }
                    this.AsyncDeleteServerMessageHistory(deleteCallBack);
                }
            }
            catch (Exception exception)
            {
                ClientLogger.WriteException(exception);
            }
        }

        public void AsyncDelete(Imps.Client.Core.Contact contact, DateTime start, DateTime end)
        {
        }

        public void AsyncDeleteMessageHistory(params string[] contactUris)
        {
            try
            {
                if ((contactUris != null) && (contactUris.Length > 0))
                {
                    if (contactUris.Length == 1)
                    {
                        Imps.Client.Core.Contact contact;
                        this.CurrentUser.ContactList.TryFindOrCreateContactAndGetContactInfo(contactUris[0], out contact, new AsyncBizOperation(), ConversationManager.ConversationNeedProperty);
                        if (contact != null)
                        {
                            this.AsyncDelete(contact);
                        }
                    }
                    else
                    {
                        List<Imps.Client.Core.Contact> contacts = new List<Imps.Client.Core.Contact>();
                        foreach (string str in contactUris)
                        {
                            Imps.Client.Core.Contact item = this.CurrentUser.ContactList.Contacts.FindContact(str);
                            if (item != null)
                            {
                                contacts.Add(item);
                            }
                        }
                        this.AsyncDelete(contacts);
                    }
                }
            }
            catch (Exception exception)
            {
                ClientLogger.WriteException(exception);
            }
        }

        private void AsyncDeleteServerMessageHistory(DeleteXmlContentDelegate deleteCallBack)
        {
            ThreadPool.QueueUserWorkItem(delegate (object context) {
                try
                {
                    HttpWebRequest request = ConnectionFactory.CreateHttpWebRequest(this.CurrentUser.Configuration.SystemSetting.MsgHistorySetting.UriDelMsgHistory, this.CurrentUser, true, true);
                    request.ContentType = "text/xml";
                    string s = string.Format("<?xml version=\"1.0\" encoding=\"utf-8\" ?><args><owner>{0}</owner>{1}</args>", this.CurrentUser.Uri.ToString(), deleteCallBack());
                    byte[] buffer = Encoding.UTF8.GetBytes(s);
                    request.GetRequestStream().Write(bytes, 0, bytes.Length);
                    (request.GetResponse() as HttpWebResponse).Close();
                }
                catch (WebException)
                {
                }
                catch (Exception)
                {
                }
            });
        }

        public void AsyncSynchronize(Imps.Client.Core.Contact contact)
        {
            throw new NotImplementedException();
        }

        public bool ClearMessageHistory(IWin32Window owner)
        {
            DeleteXmlContentDelegate deleteCallBack = null;
            try
            {
                if ((owner != null) && (this._framework.UnifiedMessageBox.ShowConfirmation(owner, StringTable.Conversation.MsgConfirmDeleteAll) != DialogResult.Yes))
                {
                    return false;
                }
                if (Directory.Exists(this.CurrentUser.PersistentManager.BaseDirForHistory))
                {
                    Directory.Delete(this.CurrentUser.PersistentManager.BaseDirForHistory, true);
                }
                if (deleteCallBack == null)
                {
                    deleteCallBack = delegate {
                        StringBuilder builder = new StringBuilder();
                        builder.Append("<contacts>");
                        lock (this.CurrentUser.ContactList.Contacts.SyncRoot)
                        {
                            foreach (Imps.Client.Core.Contact contact in this.CurrentUser.ContactList.Contacts)
                            {
                                builder.Append(string.Format("<uri>{0}</uri>", contact.Uri.Raw));
                            }
                        }
                        builder.Append("</contacts>");
                        return builder.ToString();
                    };
                }
                this.AsyncDeleteServerMessageHistory(deleteCallBack);
                return true;
            }
            catch (Exception exception)
            {
                ClientLogger.WriteException(exception);
                return false;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区国产豹纹内裤在线| 91久久香蕉国产日韩欧美9色| 国产一区二区三区免费观看 | 成人高清视频免费观看| 色先锋资源久久综合| 精品久久久久久久人人人人传媒 | 欧美日韩精品一区二区天天拍小说| 日韩精品在线网站| 亚洲精品国产第一综合99久久 | 欧美日韩免费电影| 中文字幕在线不卡一区二区三区| 免费成人美女在线观看.| 91蜜桃婷婷狠狠久久综合9色| 精品国产成人在线影院| 丝袜诱惑制服诱惑色一区在线观看 | 懂色中文一区二区在线播放| 精品国产在天天线2019| 日韩黄色在线观看| 欧美巨大另类极品videosbest| 亚洲桃色在线一区| 一本大道av一区二区在线播放| 中文久久乱码一区二区| 国产91精品入口| 国产精品久久久久9999吃药| 成人自拍视频在线| 最新久久zyz资源站| www.亚洲激情.com| 亚洲精品高清在线观看| 日本电影亚洲天堂一区| 亚洲bt欧美bt精品777| 欧美久久久影院| 看电视剧不卡顿的网站| 久久人人97超碰com| 色综合久久综合网| 亚洲免费大片在线观看| 成人18精品视频| 亚洲精品视频在线| 欧美日韩和欧美的一区二区| 日韩中文字幕av电影| 精品少妇一区二区三区免费观看 | 久久久精品黄色| 成人性色生活片免费看爆迷你毛片| 国产精品你懂的在线欣赏| 色天使色偷偷av一区二区| 首页国产丝袜综合| 欧美国产精品一区二区| 在线精品视频免费播放| 久久99久久久久| 国产精品不卡在线| 精品免费一区二区三区| aaa国产一区| 久久精品国产网站| 亚洲欧美另类在线| 精品处破学生在线二十三| av成人动漫在线观看| 狠狠久久亚洲欧美| 洋洋av久久久久久久一区| 国产亚洲人成网站| 宅男在线国产精品| 一本一本大道香蕉久在线精品| 久久国产欧美日韩精品| 偷拍自拍另类欧美| 一区二区三区在线免费观看| 久久久久久久av麻豆果冻| 欧美一区二区三区在线视频| 日本黄色一区二区| 成人高清免费观看| 精品一区二区久久| 免费高清视频精品| 日韩av电影天堂| 亚洲国产综合在线| 亚洲综合丁香婷婷六月香| 亚洲视频综合在线| 国产精品传媒视频| 国产精品二三区| 一本色道**综合亚洲精品蜜桃冫| 免费成人在线播放| 男人的j进女人的j一区| 卡一卡二国产精品| 久久99精品久久久久| 美女看a上一区| 国产一区二区三区av电影 | 欧美一二三区在线观看| 久久国产精品99久久人人澡| 中文字幕+乱码+中文字幕一区| 日韩欧美你懂的| 日韩一级视频免费观看在线| 久久久精品免费网站| 国产精品蜜臀在线观看| 亚洲欧洲中文日韩久久av乱码| 国产精品国产三级国产aⅴ原创| ㊣最新国产の精品bt伙计久久| 亚洲欧美在线aaa| 一区二区三区在线免费观看| 青青草国产精品97视觉盛宴| 精品影视av免费| 99re这里只有精品6| 欧美久久久影院| 国产日产欧产精品推荐色| 亚洲精品国久久99热| 免费高清在线视频一区·| 成人国产精品免费观看| 欧美一区二区三区在线看 | 婷婷中文字幕综合| 国产成人在线免费| 欧美日韩在线精品一区二区三区激情| 欧美顶级少妇做爰| 国产精品丝袜黑色高跟| 一级女性全黄久久生活片免费| 久久成人精品无人区| 色婷婷久久久久swag精品| 久久新电视剧免费观看| 亚洲一区二区欧美日韩| 国产suv精品一区二区三区| 欧美日韩电影在线| 亚洲三级久久久| 国产激情精品久久久第一区二区| 日韩三区在线观看| 国产精品久久毛片a| 久草精品在线观看| 欧美美女黄视频| 亚洲综合成人在线| av成人免费在线观看| 国产日韩欧美在线一区| 蜜桃av一区二区在线观看| 日本国产一区二区| 亚洲人成影院在线观看| 国产成人精品网址| 久久久亚洲欧洲日产国码αv| 日韩成人免费在线| 在线电影院国产精品| 亚洲宅男天堂在线观看无病毒 | 久久精品夜色噜噜亚洲aⅴ| 日本不卡高清视频| 欧美一级片在线观看| 免费成人av资源网| 欧美大片国产精品| 国产福利精品导航| 国产片一区二区| 不卡的av电影在线观看| 国产精品久久久久影院亚瑟| 成人福利在线看| 亚洲男同性视频| 欧美夫妻性生活| 麻豆精品新av中文字幕| 久久久天堂av| 97精品国产露脸对白| 亚洲第一成人在线| 日韩欧美一二三区| 成人av资源站| 亚洲伊人色欲综合网| 日韩区在线观看| 国产精品911| 亚洲成人免费av| 国产亚洲欧美色| 欧美性猛交一区二区三区精品| 麻豆视频一区二区| 国产精品动漫网站| 日韩限制级电影在线观看| 国产一区二区不卡老阿姨| 亚洲色图一区二区三区| 欧美军同video69gay| 国产成人精品www牛牛影视| 亚洲国产精品影院| 国产午夜精品一区二区三区视频| 95精品视频在线| 精品无人码麻豆乱码1区2区| 亚洲综合视频网| 国产日韩欧美a| 欧美成人精精品一区二区频| 91成人在线观看喷潮| 福利一区二区在线观看| 免费亚洲电影在线| 一级女性全黄久久生活片免费| 欧美激情综合网| 精品久久久久久久久久久院品网| 激情综合色播激情啊| 亚洲成人激情综合网| 伊人性伊人情综合网| 久久九九影视网| 久久天堂av综合合色蜜桃网 | 亚洲国产日产av| 亚洲丝袜精品丝袜在线| 国产精品电影一区二区| 日本一区二区三级电影在线观看 | av日韩在线网站| 福利电影一区二区三区| 狠狠色2019综合网| 黄色小说综合网站| 久久99久久精品| 国产在线精品一区在线观看麻豆| 蜜桃视频一区二区三区在线观看| 午夜精品福利一区二区蜜股av| 亚洲永久免费视频| 日韩精品电影一区亚洲| 天天爽夜夜爽夜夜爽精品视频| 亚洲地区一二三色| 午夜精品成人在线| 麻豆精品新av中文字幕| 国产精品综合av一区二区国产馆|