public async Task <IActionResult> ConsumeAccount([FromBody] ConsumeAccountRequest request, CancellationToken cancellationToken = default) { ConsumeAccountResponse response = new ConsumeAccountResponse(); try { await _accountsAppService.Consume(request.Command, cancellationToken); return(NoContent()); } catch (Exception ex) { response.StatusCode = 500; response.Messages.Add(ResponseMessage.Create(ex, "")); return(StatusCode(500, response)); } }
public async Task <ActionResult <ManageAccountsResponse> > ConsumeBalance([FromHeader] string client, [FromRoute] string cpf, [FromRoute] int accountType, [FromBody] ConsumeAccountRequest request) { ManageAccountsResponse response = new ManageAccountsResponse(); string responseCode = $"CONSUME_ACCOUNT_{client}_{accountType}_FROM_{cpf}"; try { var factory = WalletFactory.Instance.GetConsumeAccount(_configuration); var transactions = await factory.Consume(client, cpf, request.LocationID, accountType, request.Value); response.StatusCode = "200"; transactions.ForEach(transaction => response.Data.Add(new ManageAccountDTO { TransactionID = transaction })); return(Ok(response)); } catch (Exception ex) { response.StatusCode = "500"; response.Messages.Add(ResponseMessage.Create(ex, responseCode)); return(StatusCode(500, response)); } }
public async Task <ActionResult <ManageAccountResponse> > ConsumeAccount([FromHeader] string client, [FromRoute] string id, [FromBody] ConsumeAccountRequest request) { ManageAccountResponse response = new ManageAccountResponse(); string responseCode = $"CONSUME_{client}_{id}"; try { var factory = WalletFactory.Instance.GetConsumeAccount(_configuration); var transaction = await factory.Consume(client, id, request.LocationID, request.Value); var dto = new ManageAccountDTO { TransactionID = transaction }; response.StatusCode = "200"; response.Data = dto; return(Ok(response)); } catch (Exception ex) { response.StatusCode = "500"; response.Messages.Add(ResponseMessage.Create(ex, responseCode)); return(StatusCode(500, response)); } }