/// <summary>
        /// Returns true if CustomerBase instances are equal
        /// </summary>
        /// <param name="other">Instance of CustomerBase to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(CustomerBase other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     CompanyInformation == other.CompanyInformation ||
                     CompanyInformation != null &&
                     CompanyInformation.Equals(other.CompanyInformation)
                     ) &&
                 (
                     MerchantCustomerId == other.MerchantCustomerId ||
                     MerchantCustomerId != null &&
                     MerchantCustomerId.Equals(other.MerchantCustomerId)
                 ) &&
                 (
                     VatNumber == other.VatNumber ||
                     VatNumber != null &&
                     VatNumber.Equals(other.VatNumber)
                 ));
        }
 /// <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 (BillingAddress != null)
         {
             hashCode = hashCode * 59 + BillingAddress.GetHashCode();
         }
         if (PersonalInformation != null)
         {
             hashCode = hashCode * 59 + PersonalInformation.GetHashCode();
         }
         if (CompanyInformation != null)
         {
             hashCode = hashCode * 59 + CompanyInformation.GetHashCode();
         }
         if (MerchantCustomerId != null)
         {
             hashCode = hashCode * 59 + MerchantCustomerId.GetHashCode();
         }
         if (VatNumber != null)
         {
             hashCode = hashCode * 59 + VatNumber.GetHashCode();
         }
         return(hashCode);
     }
 }
        /// <summary>
        /// Returns true if RefundCustomer instances are equal
        /// </summary>
        /// <param name="other">Instance of RefundCustomer to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(RefundCustomer other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     Address == other.Address ||
                     Address != null &&
                     Address.Equals(other.Address)
                     ) &&
                 (
                     CompanyInformation == other.CompanyInformation ||
                     CompanyInformation != null &&
                     CompanyInformation.Equals(other.CompanyInformation)
                 ) &&
                 (
                     ContactDetails == other.ContactDetails ||
                     ContactDetails != null &&
                     ContactDetails.Equals(other.ContactDetails)
                 ) &&
                 (
                     FiscalNumber == other.FiscalNumber ||
                     FiscalNumber != null &&
                     FiscalNumber.Equals(other.FiscalNumber)
                 ));
        }
 /// <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 (Address != null)
         {
             hashCode = hashCode * 59 + Address.GetHashCode();
         }
         if (CompanyInformation != null)
         {
             hashCode = hashCode * 59 + CompanyInformation.GetHashCode();
         }
         if (ContactDetails != null)
         {
             hashCode = hashCode * 59 + ContactDetails.GetHashCode();
         }
         if (FiscalNumber != null)
         {
             hashCode = hashCode * 59 + FiscalNumber.GetHashCode();
         }
         return(hashCode);
     }
 }
        /// <summary>
        /// Returns true if CustomerTokenWithContactDetails instances are equal
        /// </summary>
        /// <param name="other">Instance of CustomerTokenWithContactDetails to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(CustomerTokenWithContactDetails other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     ContactDetails == other.ContactDetails ||
                     ContactDetails != null &&
                     ContactDetails.Equals(other.ContactDetails)
                     ) &&
                 (
                     BillingAddress == other.BillingAddress ||
                     BillingAddress != null &&
                     BillingAddress.Equals(other.BillingAddress)
                 ) &&
                 (
                     PersonalInformation == other.PersonalInformation ||
                     PersonalInformation != null &&
                     PersonalInformation.Equals(other.PersonalInformation)
                 ) &&
                 (
                     CompanyInformation == other.CompanyInformation ||
                     CompanyInformation != null &&
                     CompanyInformation.Equals(other.CompanyInformation)
                 ) &&
                 (
                     MerchantCustomerId == other.MerchantCustomerId ||
                     MerchantCustomerId != null &&
                     MerchantCustomerId.Equals(other.MerchantCustomerId)
                 ) &&
                 (
                     VatNumber == other.VatNumber ||
                     VatNumber != null &&
                     VatNumber.Equals(other.VatNumber)
                 ));
        }