Beispiel #1
0
        public void Withdraw(DateTime transactionDate, decimal amount, string description, bool force,
                             Action <Balance> onSuccess, Action <string> onError
                             )
        {
            CashbookValidation.Validate_transaction_data(TransactionTypes.Withdrawal, transactionDate, description, amount, force,
                                                         () => {
                this.repo.Make_withdrawal(transactionDate, Math.Abs(amount), description);

                var transactions = this.repo.Load_all_transactions().ToArray();
                var cb           = this.cashbookFactory(transactions);

                var newBalance = cb.Calculate_end_of_month_balance(transactionDate);
                onSuccess(newBalance);
            },
                                                         onError);
        }
Beispiel #2
0
        public void Deposit(DateTime transactionDate, decimal amount, string description, bool force,
                            Action <Balance> onSuccess, Action <string> onError
                            )
        {
            CashbookValidation.Validate_transaction_data(TransactionTypes.Deposit, transactionDate, description, amount, force,
                                                         () => {
                description = string.IsNullOrEmpty(description) ? "Deposit" : description;

                this.repo.Make_deposit(transactionDate, Math.Abs(amount), description);

                var transactions = this.repo.Load_all_transactions().ToArray();
                var cb           = this.cashbookFactory(transactions);

                var newBalance = cb.Calculate_end_of_month_balance(transactionDate);
                onSuccess(newBalance);
            },
                                                         onError);
        }