private bool MatchIMAddresses(IContactLinkingMatchProperties contact1, IContactLinkingMatchProperties contact2)
        {
            string text = this.RemoveSipPrefix(contact1.IMAddress);

            if (text != null && SmtpAddress.IsValidSmtpAddress(text))
            {
                string s = this.RemoveSipPrefix(contact2.IMAddress);
                return(base.EqualsIgnoreCaseAndWhiteSpace(text, s));
            }
            return(false);
        }
 internal override ContactLinkingOperation Match(IContactLinkingMatchProperties contact1, IContactLinkingMatchProperties contact2)
 {
     if (base.MatchEmails(contact1, contact2))
     {
         return(ContactLinkingOperation.AutoLinkViaEmailAddress);
     }
     if (this.MatchIMAddresses(contact1, contact2))
     {
         return(ContactLinkingOperation.AutoLinkViaIMAddress);
     }
     return(ContactLinkingOperation.None);
 }
 internal abstract ContactLinkingOperation Match(IContactLinkingMatchProperties contact1, IContactLinkingMatchProperties contact2);
 protected bool MatchEmails(IContactLinkingMatchProperties contact1, IContactLinkingMatchProperties contact2)
 {
     return(contact1.EmailAddresses.Overlaps(contact2.EmailAddresses));
 }