public ValidationReport Validate_candidate_transaction(DateTime transactionDate, string description, decimal amount, bool force) { return(new ValidationReport { DateValidatedForDeposit = CashbookValidation.Validate_transaction_date(TransactionTypes.Deposit, transactionDate, force), DateValidatedForWithdrawal = CashbookValidation.Validate_transaction_date(TransactionTypes.Withdrawal, transactionDate, force), DescriptionValidatedForWithdrawal = CashbookValidation.Validate_transaction_description(TransactionTypes.Withdrawal, description), AmountValidated = CashbookValidation.Validate_transaction_amount(amount), }); }
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); }
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); }