Org.BouncyCastle.Pkix.PkixNameConstraintValidator.intersectEmail C# (CSharp) Method

intersectEmail() private method

private intersectEmail ( String email1, String email2, ISet intersect ) : void
email1 String
email2 String
intersect ISet
return void
        private void intersectEmail(String email1, String email2, ISet intersect)
        {
            // email1 is a particular address
            if (email1.IndexOf('@') != -1)
            {
                String _sub = email1.Substring(email1.IndexOf('@') + 1);
                // both are a particular mailbox
                if (email2.IndexOf('@') != -1)
                {
                    if (Platform.CompareIgnoreCase(email1, email2) == 0)
                    {
                        intersect.Add(email1);
                    }
                }
                // email2 specifies a domain
                else if (email2.StartsWith("."))
                {
                    if (WithinDomain(_sub, email2))
                    {
                        intersect.Add(email1);
                    }
                }
                // email2 specifies a particular host
                else
                {
                    if (Platform.CompareIgnoreCase(_sub, email2) == 0)
                    {
                        intersect.Add(email1);
                    }
                }
            }
            // email specifies a domain
            else if (email1.StartsWith("."))
            {
                if (email2.IndexOf('@') != -1)
                {
                    String _sub = email2.Substring(email1.IndexOf('@') + 1);
                    if (WithinDomain(_sub, email1))
                    {
                        intersect.Add(email2);
                    }
                }
                // email2 specifies a domain
                else if (email2.StartsWith("."))
                {
                    if (WithinDomain(email1, email2) || (Platform.CompareIgnoreCase(email1, email2) == 0))
                    {
                        intersect.Add(email1);
                    }
                    else if (WithinDomain(email2, email1))
                    {
                        intersect.Add(email2);
                    }
                }
                else
                {
                    if (WithinDomain(email2, email1))
                    {
                        intersect.Add(email2);
                    }
                }
            }
            // email1 specifies a host
            else
            {
                if (email2.IndexOf('@') != -1)
                {
                    String _sub = email2.Substring(email2.IndexOf('@') + 1);
                    if (Platform.CompareIgnoreCase(_sub, email1) == 0)
                    {
                        intersect.Add(email2);
                    }
                }
                // email2 specifies a domain
                else if (email2.StartsWith("."))
                {
                    if (WithinDomain(email1, email2))
                    {
                        intersect.Add(email1);
                    }
                }
                // email2 specifies a particular host
                else
                {
                    if (Platform.CompareIgnoreCase(email1, email2) == 0)
                    {
                        intersect.Add(email1);
                    }
                }
            }
        }