Пример #1
0
        public async Task <ActionResult> AddTransaction(Transaction transaction)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var actualBalance = await _balanceManagement.GetBalance();

            var newBalance = actualBalance - transaction.Amount;

            transaction.CreationDate = DateTime.Now.ToShortDateString();

            if (newBalance < 0)
            {
                transaction.Status = false;
                await _transactionManagement.AddTransaction(transaction);

                return(BadRequest("Insufficient Funds"));
            }
            transaction.Status = true;
            await _transactionManagement.AddTransaction(transaction);

            await _balanceManagement.UpdateBalance(newBalance);

            return(Ok());
        }