public async Task <IActionResult> Get(
            [FromServices] ICalculadoraJuros calculadoraJurosCompostoService,
            [FromQuery] CalculaJurosRequestDTO requestData)
        {
            try
            {
                var valorInicial = new CalculadoraJurosValorInicial(requestData.ValorInicial);
                var meses        = new CalculadoraJurosMeses(requestData.Meses);

                var jurosComposto = await calculadoraJurosCompostoService.CalculaJurosAsync(valorInicial, meses);

                return(new OkObjectResult(jurosComposto.ToString()));
            }
            catch (InvalidValueObjectDataException invalidDataEx)
            {
                return(new BadRequestObjectResult($"{invalidDataEx.Message} Valor informado: {invalidDataEx.Value}"));
            }
            catch (Exception)
            {
                return(new ObjectResult("Ocorreu um erro inesperado no servidor. Entre em contato com nosso suporte")
                {
                    StatusCode = 500,
                });
            }
        }
Exemple #2
0
        public void CalculadoraJurosDecimalPositivoComSucesso(int valor)
        {
            var jurosMeses    = new CalculadoraJurosMeses(valor);
            var valorEsperado = valor;

            Assert.Equal(valorEsperado, jurosMeses.ToInt());
            Assert.Equal(valorEsperado.ToString(), jurosMeses.ToString());
        }
        public async Task <CalculadoraJurosDecimalPositivo> CalculaJurosAsync(CalculadoraJurosValorInicial valorInicial, CalculadoraJurosMeses numeroMeses)
        {
            var taxaJuros = await _taxaJurosAPIService.ObterTaxaJuros();

            var valorFinal = CalcularValorDoJurosComposto(valorInicial.ToDouble(), numeroMeses.ToInt(), taxaJuros.ToDecimal());

            return(new CalculadoraJurosDecimalPositivo(valorFinal));
        }