@@ -43,7 +43,7 @@ public LoginDiscontinuationConfiguration(
4343 DiscontinuedForDomains = new HashSet < string > ( discontinuedForDomains , StringComparer . OrdinalIgnoreCase ) ;
4444 ExceptionsForEmailAddresses = new HashSet < string > ( exceptionsForEmailAddresses , StringComparer . OrdinalIgnoreCase ) ;
4545 ForceTransformationToOrganizationForEmailAddresses = new HashSet < string > ( forceTransformationToOrganizationForEmailAddresses , StringComparer . OrdinalIgnoreCase ) ;
46- EnabledOrganizationAadTenants = new HashSet < OrganizationTenantPair > ( enabledOrganizationAadTenants , new OrganizationTenantPairComparer ( ) ) ;
46+ EnabledOrganizationAadTenants = new HashSet < OrganizationTenantPair > ( enabledOrganizationAadTenants ) ;
4747 IsPasswordDiscontinuedForAll = isPasswordDiscontinuedForAll ;
4848 }
4949
@@ -87,6 +87,16 @@ public bool ShouldUserTransformIntoOrganization(User user)
8787
8888 public bool IsTenantIdPolicySupportedForOrganization ( string emailAddress , string tenantId )
8989 {
90+ if ( string . IsNullOrEmpty ( emailAddress ) )
91+ {
92+ throw new ArgumentException ( nameof ( emailAddress ) ) ;
93+ }
94+
95+ if ( string . IsNullOrEmpty ( tenantId ) )
96+ {
97+ throw new ArgumentException ( nameof ( tenantId ) ) ;
98+ }
99+
90100 return EnabledOrganizationAadTenants . Contains ( new OrganizationTenantPair ( new MailAddress ( emailAddress ) . Host , tenantId ) ) ;
91101 }
92102
@@ -105,7 +115,7 @@ public interface ILoginDiscontinuationConfiguration
105115 bool IsTenantIdPolicySupportedForOrganization ( string emailAddress , string tenantId ) ;
106116 }
107117
108- public class OrganizationTenantPair
118+ public class OrganizationTenantPair : IEquatable < OrganizationTenantPair >
109119 {
110120 public string EmailDomain { get ; }
111121 public string TenantId { get ; }
@@ -116,25 +126,28 @@ public OrganizationTenantPair(string emailDomain, string tenantId)
116126 EmailDomain = emailDomain ?? throw new ArgumentNullException ( nameof ( emailDomain ) ) ;
117127 TenantId = tenantId ?? throw new ArgumentNullException ( nameof ( tenantId ) ) ;
118128 }
119- }
120129
121- public class OrganizationTenantPairComparer : IEqualityComparer < OrganizationTenantPair >
122- {
123- public bool Equals ( OrganizationTenantPair x , OrganizationTenantPair y )
130+ public override bool Equals ( object obj )
124131 {
125- if ( x == null || y == null )
126- {
127- return x == null && y == null ;
128- }
132+ return Equals ( obj as OrganizationTenantPair ) ;
133+ }
129134
130- return
131- string . Equals ( x . EmailDomain , y . EmailDomain , StringComparison . OrdinalIgnoreCase ) &&
132- string . Equals ( x . TenantId , y . TenantId , StringComparison . OrdinalIgnoreCase ) ;
135+ public bool Equals ( OrganizationTenantPair other )
136+ {
137+ return other != null &&
138+ string . Equals ( EmailDomain , other . EmailDomain , StringComparison . OrdinalIgnoreCase ) &&
139+ string . Equals ( TenantId , other . TenantId , StringComparison . OrdinalIgnoreCase ) ;
133140 }
134141
135- public int GetHashCode ( OrganizationTenantPair obj )
142+ /// <remarks>
143+ /// Autogenerated by "Quick Actions and Refactoring" -> "Generate Equals and GetHashCode".
144+ /// </remarks>
145+ public override int GetHashCode ( )
136146 {
137- return obj . EmailDomain . GetHashCode ( ) ^ obj . TenantId . GetHashCode ( ) ;
147+ var hashCode = - 1334890813 ;
148+ hashCode = hashCode * - 1521134295 + EqualityComparer < string > . Default . GetHashCode ( EmailDomain . ToLowerInvariant ( ) ) ;
149+ hashCode = hashCode * - 1521134295 + EqualityComparer < string > . Default . GetHashCode ( TenantId . ToLowerInvariant ( ) ) ;
150+ return hashCode ;
138151 }
139152 }
140153}
0 commit comments