public override void EndElement(string endElement)
        {
            if (AccountStateUpdated != null && RootNodeName.Equals(endElement))
            {
                long    accountId;
                decimal balance;
                decimal availableFunds;
                decimal availableToWithdraw;
                decimal unrealisedProfitAndLoss;
                decimal margin;

                TryGetValue(AccountIdNodeName, out accountId);
                TryGetValue(BalanceNodeName, out balance);
                TryGetValue(AvailableFundsNodeName, out availableFunds);
                TryGetValue(AvailableToWithdrawNodeName, out availableToWithdraw);
                TryGetValue(UnrealisedProfitAndLossNodeName, out unrealisedProfitAndLoss);
                TryGetValue(MarginNodeName, out margin);

                AccountStateBuilder accountStateBuilder = new AccountStateBuilder();
                accountStateBuilder.AccountId(accountId).Balance(balance).AvailableFunds(availableFunds).
                AvailableToWithdraw(availableToWithdraw).UnrealisedProfitAndLoss(unrealisedProfitAndLoss).Margin(margin).Wallets(_walletsHandler.GetAndResetWallets());

                AccountStateUpdated(accountStateBuilder.NewInstance());
            }
        }
        public override void EndElement(string endElement)
        {
            if (this.AccountStateUpdated == null || !"accountState".Equals(endElement))
            {
                return;
            }
            long longValue;

            this.TryGetValue("accountId", out longValue);
            Decimal dec1;

            this.TryGetValue("balance", out dec1);
            Decimal dec2;

            this.TryGetValue("availableFunds", out dec2);
            Decimal dec3;

            this.TryGetValue("availableToWithdraw", out dec3);
            Decimal dec4;

            this.TryGetValue("unrealisedProfitAndLoss", out dec4);
            Decimal dec5;

            this.TryGetValue("margin", out dec5);
            AccountStateBuilder accountStateBuilder = new AccountStateBuilder();

            accountStateBuilder.AccountId(longValue).Balance(dec1).AvailableFunds(dec2).AvailableToWithdraw(dec3).UnrealisedProfitAndLoss(dec4).Margin(dec5).Wallets(this._walletsHandler.GetAndResetWallets());
            this.AccountStateUpdated(accountStateBuilder.NewInstance());
        }