예제 #1
0
        public async Task <ActionResult <double> > CalculaJuros([FromQuery] CalculaJurosDto parameters)
        {
            try
            {
                CalculaJurosCommand command = new CalculaJurosCommand()
                {
                    ValorInicial  = parameters.ValorInicial,
                    Meses         = parameters.Meses,
                    CasasDecimais = _defaultSettings.Value.DecimalPlaces,
                    TaxaJuros     = _defaultSettings.Value.Interest
                };

                // Utilização do MediatR como preparação para separação do command em microserviço.
                double commandResult = await _mediator.Send(command);

                // Retorno 200
                return(Ok(commandResult));
            }
            catch (ValidationException ex)
            {
                // Retorno do status 400 - Bad Request
                return(BadRequest(new { ex.Message, ex.HelpLink }));
            }
            catch (Exception ex)
            {
                // Retorno do status 500 - Internal Server Error
                return(StatusCode((int)HttpStatusCode.InternalServerError, new { ex.Message, ex.HelpLink }));
            }
        }
        public static void ClassInitialize(TestContext context)
        {
            _calculaJurosDto = new CalculaJurosDto()
            {
                ValorInicial = 100,
                Meses        = 5
            };

            _defaultSettings = GetIOptionsMock();
        }
예제 #3
0
        public async Task CalcularAsync_DeveRetornar1010()
        {
            var dto = new CalculaJurosDto
            {
                ValorInicial = 1000,
                Meses        = 1
            };

            var url = QueryHelpers.AddQueryString(_endPoint, new Dictionary <string, string>
            {
                { nameof(dto.ValorInicial), dto.ValorInicial.ToString() },
                { nameof(dto.Meses), dto.Meses.ToString() }
            });

            var response = await _httpClient.GetAsync(url);

            response.EnsureSuccessStatusCode();

            var valorAtual = await JsonSerializer.DeserializeAsync <decimal>(await response.Content.ReadAsStreamAsync());

            Assert.Equal(1010, valorAtual);
        }
        public async Task <decimal> CalcularAsync(CalculaJurosDto dto)
        {
            var juros = await _aplicTaxaJuros.ObterTaxaPadraoAsync();

            return(CalculadoraJuros.Calcular(dto.ValorInicial, dto.Meses, juros));
        }
예제 #5
0
 public async Task <decimal> CalcularAsync([FromQuery] CalculaJurosDto dto)
 {
     return(await _aplicCalculoJuros.CalcularAsync(dto));
 }