/// <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 (Card != null)
             hashCode = hashCode * 59 + Card.GetHashCode();
             if (EWallet != null)
             hashCode = hashCode * 59 + EWallet.GetHashCode();
             if (Id != null)
             hashCode = hashCode * 59 + Id.GetHashCode();
             if (PaymentProductId != null)
             hashCode = hashCode * 59 + PaymentProductId.GetHashCode();
         return hashCode;
     }
 }