Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
        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));
            }
        }