Ejemplo n.º 1
0
        private static void MapCertificate1To2(ContactItem source, vCard target)
        {
            try
            {
                object[] certWrapper = source.GetPropertySafe(PR_USER_X509_CERTIFICATE);

                if (certWrapper.Length > 0)
                {
                    byte[] rawCert = GetRawCert((byte[])certWrapper[0]);
                    target.Certificates.Add(new vCardCertificate("X509", rawCert));
                }
            }
            catch (COMException ex)
            {
                s_logger.Error("Could not get property PR_USER_X509_CERTIFICATE for contact.", ex);
            }
        }
        private static void MapEmailAddresses1To2(ContactItem source, Contact target, IEntityMappingLogger logger)
        {
            target.Emails.Clear();

            if (!string.IsNullOrEmpty(source.Email1Address))
            {
                string email1Address = string.Empty;

                if (source.Email1AddressType == "EX")
                {
                    try
                    {
                        email1Address = source.GetPropertySafe(PR_EMAIL1ADDRESS);
                    }
                    catch (COMException ex)
                    {
                        s_logger.Warn("Could not get property PR_EMAIL1ADDRESS for Email1Address", ex);
                        logger.LogMappingWarning("Could not get property PR_EMAIL1ADDRESS for Email1Address", ex);
                    }
                }
                else
                {
                    email1Address = source.Email1Address;
                }
                if (!string.IsNullOrEmpty(email1Address))
                {
                    target.Emails.Add(new EMail()
                    {
                        Primary = true,
                        Address = email1Address,
                        Rel     = ContactsRelationships.IsWork,
                    });
                }
            }

            if (!string.IsNullOrEmpty(source.Email2Address))
            {
                string email2Address = string.Empty;

                if (source.Email2AddressType == "EX")
                {
                    try
                    {
                        email2Address = source.GetPropertySafe(PR_EMAIL2ADDRESS);
                    }
                    catch (COMException ex)
                    {
                        s_logger.Warn("Could not get property PR_EMAIL2ADDRESS for Email2Address", ex);
                        logger.LogMappingWarning("Could not get property PR_EMAIL2ADDRESS for Email2Address", ex);
                    }
                }
                else
                {
                    email2Address = source.Email2Address;
                }
                if (!string.IsNullOrEmpty(email2Address))
                {
                    target.Emails.Add(new EMail()
                    {
                        Primary = (target.Emails.Count == 0),
                        Address = email2Address,
                        Rel     = ContactsRelationships.IsHome,
                    });
                }
            }

            if (!string.IsNullOrEmpty(source.Email3Address))
            {
                string email3Address = string.Empty;

                if (source.Email3AddressType == "EX")
                {
                    try
                    {
                        email3Address = source.GetPropertySafe(PR_EMAIL3ADDRESS);
                    }
                    catch (COMException ex)
                    {
                        s_logger.Warn("Could not get property PR_EMAIL3ADDRESS for Email3Address", ex);
                        logger.LogMappingWarning("Could not get property PR_EMAIL3ADDRESS for Email3Address", ex);
                    }
                }
                else
                {
                    email3Address = source.Email3Address;
                }
                if (!string.IsNullOrEmpty(email3Address))
                {
                    target.Emails.Add(new EMail()
                    {
                        Primary = (target.Emails.Count == 0),
                        Address = email3Address,
                        Rel     = ContactsRelationships.IsOther,
                    });
                }
            }
        }
        private static void MapEmailAddresses1To2(ContactItem source, vCard target, IEntityMappingLogger logger)
        {
            if (!string.IsNullOrEmpty(source.Email1Address))
            {
                string email1Address = string.Empty;

                if (source.Email1AddressType == "EX")
                {
                    try
                    {
                        email1Address = source.GetPropertySafe(PR_EMAIL1ADDRESS);
                    }
                    catch (COMException ex)
                    {
                        s_logger.Warn("Could not get property PR_EMAIL1ADDRESS for Email1Address", ex);
                        logger.LogMappingWarning("Could not get property PR_EMAIL1ADDRESS for Email1Address", ex);
                    }
                }
                else
                {
                    email1Address = source.Email1Address;
                }
                if (!string.IsNullOrEmpty(email1Address))
                {
                    target.EmailAddresses.Add(new vCardEmailAddress(email1Address));
                }
            }

            if (!string.IsNullOrEmpty(source.Email2Address))
            {
                string email2Address = string.Empty;

                if (source.Email2AddressType == "EX")
                {
                    try
                    {
                        email2Address = source.GetPropertySafe(PR_EMAIL2ADDRESS);
                    }
                    catch (COMException ex)
                    {
                        s_logger.Warn("Could not get property PR_EMAIL2ADDRESS for Email2Address", ex);
                        logger.LogMappingWarning("Could not get property PR_EMAIL2ADDRESS for Email2Address", ex);
                    }
                }
                else
                {
                    email2Address = source.Email2Address;
                }
                if (!string.IsNullOrEmpty(email2Address))
                {
                    target.EmailAddresses.Add(new vCardEmailAddress(email2Address));
                }
            }

            if (!string.IsNullOrEmpty(source.Email3Address))
            {
                string email3Address = string.Empty;

                if (source.Email3AddressType == "EX")
                {
                    try
                    {
                        email3Address = source.GetPropertySafe(PR_EMAIL3ADDRESS);
                    }
                    catch (COMException ex)
                    {
                        s_logger.Warn("Could not get property PR_EMAIL3ADDRESS for Email3Address", ex);
                        logger.LogMappingWarning("Could not get property PR_EMAIL3ADDRESS for Email3Address", ex);
                    }
                }
                else
                {
                    email3Address = source.Email3Address;
                }
                if (!string.IsNullOrEmpty(email3Address))
                {
                    target.EmailAddresses.Add(new vCardEmailAddress(email3Address));
                }
            }
        }
        private void MapEmailAddresses1To2(ContactItem source, vCard target, IEntitySynchronizationLogger logger)
        {
            target.EmailAddresses.Clear();
            if (!string.IsNullOrEmpty(source.Email1Address))
            {
                string email1Address = string.Empty;

                if (source.Email1AddressType == "EX")
                {
                    try
                    {
                        email1Address = source.GetPropertySafe(PR_EMAIL1ADDRESS);
                    }
                    catch (COMException ex)
                    {
                        s_logger.Warn("Could not get property PR_EMAIL1ADDRESS for Email1Address", ex);
                        logger.LogWarning("Could not get property PR_EMAIL1ADDRESS for Email1Address", ex);
                    }
                }
                else
                {
                    email1Address = source.Email1Address;
                }

                if (!string.IsNullOrEmpty(email1Address))
                {
                    target.EmailAddresses.Add(new vCardEmailAddress(email1Address, vCardEmailAddressType.Internet, _configuration.MapOutlookEmail1ToWork ? ItemType.WORK : ItemType.HOME));
                }
            }

            if (!string.IsNullOrEmpty(source.Email2Address))
            {
                string email2Address = string.Empty;

                if (source.Email2AddressType == "EX")
                {
                    try
                    {
                        email2Address = source.GetPropertySafe(PR_EMAIL2ADDRESS);
                    }
                    catch (COMException ex)
                    {
                        s_logger.Warn("Could not get property PR_EMAIL2ADDRESS for Email2Address", ex);
                        logger.LogWarning("Could not get property PR_EMAIL2ADDRESS for Email2Address", ex);
                    }
                }
                else
                {
                    email2Address = source.Email2Address;
                }

                if (!string.IsNullOrEmpty(email2Address))
                {
                    target.EmailAddresses.Add(new vCardEmailAddress(email2Address, vCardEmailAddressType.Internet, _configuration.MapOutlookEmail1ToWork ? ItemType.HOME : ItemType.WORK));
                }
            }

            if (!string.IsNullOrEmpty(source.Email3Address))
            {
                string email3Address = string.Empty;

                if (source.Email3AddressType == "EX")
                {
                    try
                    {
                        email3Address = source.GetPropertySafe(PR_EMAIL3ADDRESS);
                    }
                    catch (COMException ex)
                    {
                        s_logger.Warn("Could not get property PR_EMAIL3ADDRESS for Email3Address", ex);
                        logger.LogWarning("Could not get property PR_EMAIL3ADDRESS for Email3Address", ex);
                    }
                }
                else
                {
                    email3Address = source.Email3Address;
                }

                if (!string.IsNullOrEmpty(email3Address))
                {
                    target.EmailAddresses.Add(new vCardEmailAddress(email3Address));
                }
            }
        }