private void SaveBalanceAdjustment()
        {
            LedgerTransaction newTransaction = this.reconService.CreateBalanceAdjustment(this.entryLine, NewTransactionAmount, NewTransactionNarrative, NewTransactionAccount);

            ShownTransactions.Add(newTransaction);
            this.wasChanged = true;
            RaisePropertyChanged(() => TransactionsTotal);
        }
        private void SaveNewEntryTransaction()
        {
            try
            {
                Debug.Assert(this.entryLine != null);
                var newTransaction = this.reconService.CreateLedgerTransaction(this.ledgerService.LedgerBook, this.entryLine, LedgerEntry, NewTransactionAmount, NewTransactionNarrative);
                ShownTransactions.Add(newTransaction);
            }
            catch (ArgumentException)
            {
                // Invalid transaction data
                return;
            }

            RaisePropertyChanged(() => TransactionsTotal);
            this.wasChanged = true;
        }
        private void OnDeleteTransactionCommandExecuted(LedgerTransaction transaction)
        {
            if (IsReadOnly)
            {
                return;
            }

            if (InLedgerEntryMode)
            {
                this.wasChanged = true;
                this.reconService.RemoveTransaction(this.ledgerService.LedgerBook, LedgerEntry, transaction.Id);
                ShownTransactions.Remove(transaction);
            }
            else if (InBalanceAdjustmentMode)
            {
                this.wasChanged = true;
                this.reconService.CancelBalanceAdjustment(this.entryLine, transaction.Id);
                ShownTransactions.Remove(transaction);
            }

            RaisePropertyChanged(() => TransactionsTotal);
            RaisePropertyChanged(() => LedgerEntry);
        }