Exemple #1
0
        public IActionResult RegistrarPagamento([FromBody] PagamentoInput input)
        {
            try
            {
                if (input.EhValido())
                {
                    string response = _pagamentoService.ExibirInfoTroco(input.ValorVenda, input.ValorPago);

                    PagamentoOutput output = new PagamentoOutput {
                        InfoTroco = response
                    };

                    return(ResponseSuccess(output, _pagamentoService));
                }
                return(BadRequest("Dados de entrada inválidos"));
            }
            catch (Exception ex)
            {
                return(ResponseException(ex));
            }
        }
Exemple #2
0
        private StatusPagamento EnviarPagamentoOperadoraCartao(PagamentoInput dadosPagamento)
        {
            //Simula a chamada aos serviços da operadora de cartão
            var random       = new Random();
            var randomNumber = random.Next(1, 100);

            if (randomNumber < 30)
            {
                //Simula a reprovação do pagamento
                return(StatusPagamento.Reprovado);
            }
            else if (randomNumber < 50)
            {
                //Simula erro na comunicação com a operadora
                return(StatusPagamento.Erro);
            }
            else
            {
                //Simula a aprovação do pagamento
                return(StatusPagamento.Autorizado);
            }
        }
Exemple #3
0
        public PagamentoOutput EfetuarPagamento(PagamentoInput dadosPagamento)
        {
            //Realiza o pagamento junto à operadora de cartão
            var status = EnviarPagamentoOperadoraCartao(dadosPagamento);

            var mensagem = string.Empty;

            switch (status)
            {
            case StatusPagamento.Autorizado:
                mensagem = "Pagamento autorizado";
                break;

            case StatusPagamento.Reprovado:
                mensagem = "Pagamento não autorizado";
                break;

            case StatusPagamento.Erro:
                mensagem = "Erro ao efetuar o pagamento";
                break;

            default:
                break;
            }

            var idPagamento = PagamentosMock.Pagamentos.Any() ? PagamentosMock.Pagamentos.Max(p => p.Id) + 1 : 1;

            var pagamento = new PagamentoOutput
            {
                Id       = idPagamento,
                Mensagem = mensagem,
                Status   = status,
            };

            PagamentosMock.Pagamentos.Add(pagamento);

            return(pagamento);
        }
 public PagamentoOutput Post([FromBody] PagamentoInput dadosPagamento)
 {
     return(_pagamentosBll.EfetuarPagamento(dadosPagamento));
 }