public IActionResult Transfer(TransferTransactionRequest request) { if (isStopped) { return(StatusCode(500)); } lock (theLock) { if (store.TryGetValue(request.AccountNumber, out List <Transaction> entries)) { if (entries.Sum(o => o.Amount) < request.Amount) { return(BadRequest()); } var tx = new Transaction(-request.Amount); entries.Add(tx); return(Ok(new TransferTransactionResponse { TransactionUN = tx.Id, TransactionAUN = Guid.NewGuid().ToString(), ProcessDate = DateTime.Today })); } return(NotFound()); } }
public async Task <AccountTransactionResult> TransferAsync(AccountTransaction transaction, CancellationToken cancellationToken = default) { var request = new TransferTransactionRequest() { Amount = transaction.Amount }; var response = await ExtAccountClientService.TransferAsync(request); return(new AccountTransactionResult() { }); }
public async Task <TransferTransactionResponse> TransferAsync(TransferTransactionRequest request, CancellationToken cancellationToken = default) { var response = await PostJsonAsync <TransferTransactionResponse>("Account/Transfer", request, null, cancellationToken); return(response); }