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

            return
                ((
                     AccountId == other.AccountId ||
                     AccountId != null &&
                     AccountId.Equals(other.AccountId)
                     ) &&
                 (
                     BalanceUType == other.BalanceUType ||
                     BalanceUType != null &&
                     BalanceUType.Equals(other.BalanceUType)
                 ) &&
                 (
                     Deposit == other.Deposit ||
                     Deposit != null &&
                     Deposit.Equals(other.Deposit)
                 ) &&
                 (
                     Lending == other.Lending ||
                     Lending != null &&
                     Lending.Equals(other.Lending)
                 ) &&
                 (
                     Purses == other.Purses ||
                     Purses != null &&
                     Purses.SequenceEqual(other.Purses)
                 ));
        }