示例#1
0
        public async Task <IActionResult> Cancel([FromBody] TransactionCancelRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(new BadRequestResult());
            }

            var transactionToCancel = await _dbContext.Transaction.FirstOrDefaultAsync(t => t.Id == request.TransactionId);

            if (transactionToCancel == null)
            {
                return(StatusCode(205));
            }

            var newTransaction = new Transaction
            {
                Amount   = transactionToCancel.Amount, From = transactionToCancel.To, To = transactionToCancel.From,
                Datetime = DateTime.Now
            };

            try
            {
                await _transaction.PerformAsync(newTransaction);
            }
            catch (AccountsNotFoundException e)
            {
                return(StatusCode(205));
            }
            catch (AccountsFrozenException e)
            {
                return(StatusCode(202));
            }

            await _dbContext.Transaction.AddAsync(newTransaction);

            return(new OkResult());
        }
示例#2
0
        public async Task <IActionResult> Transfer([FromBody] TransferRequest request)
        {
            var transaction = new Transaction
            {
                Amount = request.MoneyAmount, Datetime = DateTime.Now, From = request.From, To = request.To
            };

            try
            {
                await _transaction.PerformAsync(transaction);
            }
            catch (AccountsNotFoundException e)
            {
                return(StatusCode(205));
            }
            catch (AccountsFrozenException e)
            {
                return(StatusCode(202));
            }

            await _dbContext.Transaction.AddAsync(transaction);

            return(new OkResult());
        }