/// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (ProviderName != null)
         {
             hashCode = hashCode * 59 + ProviderName.GetHashCode();
         }
         if (HostName != null)
         {
             hashCode = hashCode * 59 + HostName.GetHashCode();
         }
         if (HostPort != null)
         {
             hashCode = hashCode * 59 + HostPort.GetHashCode();
         }
         if (HostSsl != null)
         {
             hashCode = hashCode * 59 + HostSsl.GetHashCode();
         }
         if (HostTls != null)
         {
             hashCode = hashCode * 59 + HostTls.GetHashCode();
         }
         if (HostNoCertCheck != null)
         {
             hashCode = hashCode * 59 + HostNoCertCheck.GetHashCode();
         }
         if (BindDn != null)
         {
             hashCode = hashCode * 59 + BindDn.GetHashCode();
         }
         if (BindPassword != null)
         {
             hashCode = hashCode * 59 + BindPassword.GetHashCode();
         }
         if (SearchTimeout != null)
         {
             hashCode = hashCode * 59 + SearchTimeout.GetHashCode();
         }
         if (AdminPoolMaxActive != null)
         {
             hashCode = hashCode * 59 + AdminPoolMaxActive.GetHashCode();
         }
         if (AdminPoolLookupOnValidate != null)
         {
             hashCode = hashCode * 59 + AdminPoolLookupOnValidate.GetHashCode();
         }
         if (UserPoolMaxActive != null)
         {
             hashCode = hashCode * 59 + UserPoolMaxActive.GetHashCode();
         }
         if (UserPoolLookupOnValidate != null)
         {
             hashCode = hashCode * 59 + UserPoolLookupOnValidate.GetHashCode();
         }
         if (UserBaseDN != null)
         {
             hashCode = hashCode * 59 + UserBaseDN.GetHashCode();
         }
         if (UserObjectclass != null)
         {
             hashCode = hashCode * 59 + UserObjectclass.GetHashCode();
         }
         if (UserIdAttribute != null)
         {
             hashCode = hashCode * 59 + UserIdAttribute.GetHashCode();
         }
         if (UserExtraFilter != null)
         {
             hashCode = hashCode * 59 + UserExtraFilter.GetHashCode();
         }
         if (UserMakeDnPath != null)
         {
             hashCode = hashCode * 59 + UserMakeDnPath.GetHashCode();
         }
         if (GroupBaseDN != null)
         {
             hashCode = hashCode * 59 + GroupBaseDN.GetHashCode();
         }
         if (GroupObjectclass != null)
         {
             hashCode = hashCode * 59 + GroupObjectclass.GetHashCode();
         }
         if (GroupNameAttribute != null)
         {
             hashCode = hashCode * 59 + GroupNameAttribute.GetHashCode();
         }
         if (GroupExtraFilter != null)
         {
             hashCode = hashCode * 59 + GroupExtraFilter.GetHashCode();
         }
         if (GroupMakeDnPath != null)
         {
             hashCode = hashCode * 59 + GroupMakeDnPath.GetHashCode();
         }
         if (GroupMemberAttribute != null)
         {
             hashCode = hashCode * 59 + GroupMemberAttribute.GetHashCode();
         }
         if (UseUidForExtId != null)
         {
             hashCode = hashCode * 59 + UseUidForExtId.GetHashCode();
         }
         if (Customattributes != null)
         {
             hashCode = hashCode * 59 + Customattributes.GetHashCode();
         }
         return(hashCode);
     }
 }