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(); }
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)); }
public async Task <decimal> CalcularAsync([FromQuery] CalculaJurosDto dto) { return(await _aplicCalculoJuros.CalcularAsync(dto)); }