Example #1
0
        private decimal RealizaCalculoTaxasTransacao(TransacaoTaxas transacaoTaxas, Adquirente adquirente)
        {
            if (transacaoTaxas.bandeira.Equals(VISA))
            {
                adquirente.ObtemTaxasVisa();
            }
            else
            {
                adquirente.ObtemTaxasMaster();
            }
            decimal valorTaxaAdquirenteBandeira = adquirente.Taxas[0].ObtemTaxaTransacao(transacaoTaxas.tipoTransacao);

            return(transacaoTaxas.calculaValorTaxa(valorTaxaAdquirenteBandeira));
        }
Example #2
0
        public decimal ObtemValorLiquidoTransacao(TransacaoTaxas transacaoTaxas)
        {
            Type adquirenteObj = Assembly.GetEntryAssembly().GetType("DotNetCore2RestWebApplication.Models." + transacaoTaxas.adquirente);

            if (adquirenteObj != null)
            {
                object     entity     = Activator.CreateInstance(adquirenteObj);
                Adquirente adquirente = ((Adquirente)entity);
                _logger.LogInformation("Processamento de consulta do ValorLiquidoAdquirente realizado com sucesso");
                return(RealizaCalculoTaxasTransacao(transacaoTaxas, adquirente));
            }
            else
            {
                return(Decimal.Zero);
            }
        }
Example #3
0
        public async Task <IActionResult> ObtemValorLiquidoTransacao([FromBody] TransacaoTaxas transacaoTaxas)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            else
            {
                try
                {
                    dynamic result = _transacaoTaxasService.ObtemValorLiquidoTransacao(transacaoTaxas);
                    await Task.Run(() => result);

                    return(Ok(new ValorLiquidoResponse(result)));
                }catch (Exception e)
                {
                    _logger.LogInformation("Ocorreu um erro ao processar o valor liquido de transacao. " + e.Message);
                    return(StatusCode(500));
                }
            }
        }