www.pudn.com > Fetion.rar > ImportContactsFromOutlook.cs


namespace Imps.Client.Pc 
{ 
    using Imps.Common; 
    using Imps.Utils; 
    using Microsoft.Office.Interop.Outlook; 
    using System; 
    using System.IO; 
    using System.Windows.Forms; 
    using System.Xml; 
 
    internal class ImportContactsFromOutlook : IImportContacts 
    { 
        private static void GetContactByMAPIFolder(XmlTextWriter writer, MAPIFolder folder) 
        { 
            foreach (object obj2 in folder.Items) 
            { 
                if (obj2 is ContactItem) 
                { 
                    ContactItem item = obj2 as ContactItem; 
                    long mobileNo = 0L; 
                    if (((ImpsHelper.TryParseMobileNoExtend(item.MobileTelephoneNumber, out mobileNo) || ImpsHelper.TryParseMobileNoExtend(item.BusinessTelephoneNumber, out mobileNo)) || (ImpsHelper.TryParseMobileNoExtend(item.HomeTelephoneNumber, out mobileNo) || ImpsHelper.TryParseMobileNoExtend(item.BusinessFaxNumber, out mobileNo))) || ((ImpsHelper.TryParseMobileNoExtend(item.AssistantTelephoneNumber, out mobileNo) || ImpsHelper.TryParseMobileNoExtend(item.Business2TelephoneNumber, out mobileNo)) || ImpsHelper.TryParseMobileNoExtend(item.Home2TelephoneNumber, out mobileNo))) 
                    { 
                        writer.WriteStartElement("Contact"); 
                        writer.WriteElementString("MobileNo", mobileNo.ToString()); 
                        string nickName = (item.LastName ?? "") + (item.FirstName ?? ""); 
                        if (nickName == "") 
                        { 
                            nickName = item.NickName; 
                        } 
                        writer.WriteElementString("Name", nickName); 
                        writer.WriteElementString("Nickname", item.NickName ?? ""); 
                        writer.WriteEndElement(); 
                    } 
                } 
            } 
        } 
 
        public string GetContactsXML(IWin32Window owner, string filePath) 
        { 
            StringWriter w = new StringWriter(); 
            XmlTextWriter writer = new XmlTextWriter(w); 
            writer.Formatting = Formatting.None; 
            writer.WriteStartElement("Contacts"); 
            Microsoft.Office.Interop.Outlook.Application application = new ApplicationClass(); 
            MAPIFolder defaultFolder = application.Session.GetDefaultFolder(OlDefaultFolders.olFolderContacts); 
            if (defaultFolder.Items.Count == 0) 
            { 
                return ""; 
            } 
            GetContactByMAPIFolder(writer, defaultFolder); 
            foreach (MAPIFolder folder2 in defaultFolder.Folders) 
            { 
                GetContactByMAPIFolder(writer, folder2); 
            } 
            writer.WriteEndElement(); 
            return w.ToString(); 
        } 
 
        public string Filter 
        { 
            get 
            { 
                throw new System.Exception("The method or operation is not implemented."); 
            } 
        } 
 
        public ImportContactType Type 
        { 
            get 
            { 
                return ImportContactType.Outlook; 
            } 
        } 
    } 
}