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()); }
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()); }