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

            return 
                (
                    Card == other.Card ||
                    Card != null &&
                    Card.Equals(other.Card)
                ) && 
                (
                    EWallet == other.EWallet ||
                    EWallet != null &&
                    EWallet.Equals(other.EWallet)
                ) && 
                (
                    Id == other.Id ||
                    Id != null &&
                    Id.Equals(other.Id)
                ) && 
                (
                    PaymentProductId == other.PaymentProductId ||
                    PaymentProductId != null &&
                    PaymentProductId.Equals(other.PaymentProductId)
                );
        }