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

            return
                ((
                     DepositRateType == other.DepositRateType ||
                     DepositRateType != null &&
                     DepositRateType.Equals(other.DepositRateType)
                     ) &&
                 (
                     Rate == other.Rate ||
                     Rate != null &&
                     Rate.Equals(other.Rate)
                 ) &&
                 (
                     CalculationFrequency == other.CalculationFrequency ||
                     CalculationFrequency != null &&
                     CalculationFrequency.Equals(other.CalculationFrequency)
                 ) &&
                 (
                     ApplicationFrequency == other.ApplicationFrequency ||
                     ApplicationFrequency != null &&
                     ApplicationFrequency.Equals(other.ApplicationFrequency)
                 ) &&
                 (
                     Tier == other.Tier ||
                     Tier != null &&
                     Tier.Equals(other.Tier)
                 ) &&
                 (
                     AdditionalValue == other.AdditionalValue ||
                     AdditionalValue != null &&
                     AdditionalValue.Equals(other.AdditionalValue)
                 ) &&
                 (
                     AdditionalInfo == other.AdditionalInfo ||
                     AdditionalInfo != null &&
                     AdditionalInfo.Equals(other.AdditionalInfo)
                 ) &&
                 (
                     AdditionalInfoUri == other.AdditionalInfoUri ||
                     AdditionalInfoUri != null &&
                     AdditionalInfoUri.Equals(other.AdditionalInfoUri)
                 ));
        }
 /// <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 (DepositRateType != null)
         {
             hashCode = hashCode * 59 + DepositRateType.GetHashCode();
         }
         if (Rate != null)
         {
             hashCode = hashCode * 59 + Rate.GetHashCode();
         }
         if (CalculationFrequency != null)
         {
             hashCode = hashCode * 59 + CalculationFrequency.GetHashCode();
         }
         if (ApplicationFrequency != null)
         {
             hashCode = hashCode * 59 + ApplicationFrequency.GetHashCode();
         }
         if (Tier != null)
         {
             hashCode = hashCode * 59 + Tier.GetHashCode();
         }
         if (AdditionalValue != null)
         {
             hashCode = hashCode * 59 + AdditionalValue.GetHashCode();
         }
         if (AdditionalInfo != null)
         {
             hashCode = hashCode * 59 + AdditionalInfo.GetHashCode();
         }
         if (AdditionalInfoUri != null)
         {
             hashCode = hashCode * 59 + AdditionalInfoUri.GetHashCode();
         }
         return(hashCode);
     }
 }