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)); }
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); } }
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)); } } }