Ejemplo n.º 1
0
        public IActionResult AtualizarTaxa(Guid id, [FromBody] TaxaViewModel taxaViewModel)
        {
            try
            {
                var taxa = _taxaRepository.ObterPorId(id);

                if (taxa == null)
                {
                    throw new Exception("Taxa não encontrada.");
                }

                taxa.Percentual = taxaViewModel.Taxa;

                RegisterLog.Log(TipoLog.Info, "Atualização de percentual da taxa.");

                _taxaRepository.Atualizar(taxa);
                _unitOfWork.Commit();
            }catch (Exception e)
            {
                RegisterLog.Log(TipoLog.Error, "Erro ao atualizar taxa.");
                return(BadRequest(e.Message));
            }

            RegisterLog.Log(TipoLog.Info, "Atualização realizada com sucesso!");

            return(Ok("Atualização realizada com sucesso!"));
        }
Ejemplo n.º 2
0
        public IActionResult CalcularValoresListaCartoes([FromBody] List <DadosTransacaoViewModel> dadosTransacaoViewModel)
        {
            try
            {
                var valorTransacao = dadosTransacaoViewModel.Sum(x => x.ValorCartao);

                var transacaoFactory = new TransacaoFactory(valorTransacao);
                var transacao        = transacaoFactory.Criar();

                RegisterLog.Log(TipoLog.Info, "Criar item de transacao para cada informação de cartão da lista.");

                dadosTransacaoViewModel.ForEach(
                    x => {
                    var taxa = _taxaRepository.ObterPorAdquirenteBandeira(x.IdBandeira, x.IdAdquirente);

                    if (taxa == null)
                    {
                        throw new Exception("Taxa não encontrada.");
                    }

                    transacao.CriarItem(taxa,
                                        x.NumeroCartao,
                                        x.ValidadeCartao,
                                        x.CvvCartao,
                                        x.ValorCartao);
                }
                    );

                RegisterLog.Log(TipoLog.Info, "Gravação da Transação.");
                _transacaoRepository.Gravar(transacao);
                _uow.Commit();

                var retorno = new List <string>();

                foreach (var item in transacao.Transacoes)
                {
                    retorno.Add(item.DescricaoRetorno);
                }

                RegisterLog.Log(TipoLog.Info, "Sucesso ao calcular valores para mais de um cartão.");
                return(Ok(retorno));
            }catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Ejemplo n.º 3
0
        public IActionResult CalcularValores([FromBody] DadosTransacaoViewModel dadosTransacaoViewModel)
        {
            try
            {
                var valorTransacao = dadosTransacaoViewModel.ValorCartao;

                var transacaoFactory = new TransacaoFactory(valorTransacao);
                var transacao        = transacaoFactory.Criar();

                RegisterLog.Log(TipoLog.Info, "Consulta para Obter Taxa por Bandeira e Adquirente");
                var taxa = _taxaRepository.ObterPorAdquirenteBandeira(dadosTransacaoViewModel.IdBandeira, dadosTransacaoViewModel.IdAdquirente);

                if (taxa == null)
                {
                    throw new Exception("Taxa não encontrada");
                }

                transacao.CriarItem(taxa,
                                    dadosTransacaoViewModel.NumeroCartao,
                                    dadosTransacaoViewModel.ValidadeCartao,
                                    dadosTransacaoViewModel.CvvCartao,
                                    dadosTransacaoViewModel.ValorCartao);

                RegisterLog.Log(TipoLog.Info, "Gravação da Transação.");

                _transacaoRepository.Gravar(transacao);
                _uow.Commit();

                var itemTransacao = transacao.Transacoes.FirstOrDefault();

                RegisterLog.Log(TipoLog.Info, "Sucesso ao calcular valores.");
                return(Ok(itemTransacao.DescricaoRetorno));
            }
            catch (Exception e)
            {
                RegisterLog.Log(TipoLog.Error, "Erro na execução do cálculo de valores");
                return(BadRequest(e.Message));
            }
        }
Ejemplo n.º 4
0
        public IActionResult ListarAdquirentes()
        {
            RegisterLog.Log(TipoLog.Info, "Obter Adquirentes.");

            return(Ok(_adquirenteRepository.ObterTodos()));
        }
Ejemplo n.º 5
0
 public IActionResult ListarTaxas()
 {
     RegisterLog.Log(TipoLog.Info, "Obter Taxas");
     return(Ok(_taxaRepository.ObterTodos()));
 }
Ejemplo n.º 6
0
 public IActionResult ListarBandeiras()
 {
     RegisterLog.Log(TipoLog.Info, "Obter Bandeiras.");
     return(Ok(_bandeiraRepository.ObterTodos()));
 }
Ejemplo n.º 7
0
        public object Post(
            [FromBody] User usuario,
            [FromServices] UserManager <ApplicationUser> userManager,
            [FromServices] SignInManager <ApplicationUser> signInManager,
            [FromServices] TokenConfigurations tokenConfigurations)
        {
            bool         credenciaisValidas = false;
            List <Claim> listaClaims        = new List <Claim>();

            if (usuario != null && !string.IsNullOrWhiteSpace(usuario.UserID))
            {
                var userIdentity = userManager
                                   .FindByNameAsync(usuario.UserID).Result;
                if (userIdentity != null)
                {
                    var resultadoLogin = signInManager
                                         .CheckPasswordSignInAsync(userIdentity, usuario.Password, false)
                                         .Result;

                    if (resultadoLogin.Succeeded)
                    {
                        listaClaims = ObterListaDeClaims(userManager, userIdentity);

                        credenciaisValidas = listaClaims.Any();
                    }
                }

                if (credenciaisValidas)
                {
                    RegisterLog.Log(TipoLog.Info, $"Usuário {usuario.UserID} efetuou login no sistema.");

                    var key =
                        new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["SecretKey"]));
                    var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                    DateTime dataCriacao   = DateTime.Now;
                    DateTime dataExpiracao = dataCriacao +
                                             TimeSpan.FromSeconds(tokenConfigurations.Seconds);

                    var token = new JwtSecurityToken(
                        issuer: tokenConfigurations.Issuer,
                        audience: tokenConfigurations.Audience,
                        claims: listaClaims,
                        expires: dataExpiracao,
                        signingCredentials: creds
                        );

                    return(new
                    {
                        authenticated = true,
                        created = dataCriacao.ToString("yyyy-MM-dd HH:mm:ss"),
                        expiration = dataExpiracao.ToString("yyyy-MM-dd HH:mm:ss"),
                        accessToken = new JwtSecurityTokenHandler().WriteToken(token),
                        message = "OK"
                    });
                }

                RegisterLog.Log(TipoLog.Info, "Sem permissão para usar a aplicação.");

                return(new
                {
                    authenticated = false,
                    message = "Sem permissão para usar a aplicação."
                });
            }

            return(null);
        }