public Task <JurosCompostosOutputViewModel> Calcular(JurosCompostosInputViewModel viewModel) { try { var jurosCompostos = _mapper.Map <JurosCompostos>(viewModel); if (jurosCompostos.Validar()) { return(Task.FromResult(_mapper.Map <JurosCompostosOutputViewModel>(jurosCompostos))); } _domainNotificationManager.Add("Valores", Errors.ValoresInvalidos); } catch (InvalidOperationException) { _domainNotificationManager.Add("Pârâmetros", Errors.ErroAoCalcularJurosCompostos); } catch (OverflowException) { _domainNotificationManager.Add("Pârâmetros", Errors.EstouroMemoriaServidorAoCalcular); } catch (AutoMapperMappingException ex) when(ex.GetBaseException() is OverflowException) { _domainNotificationManager.Add("Pârâmetros", Errors.EstouroMemoriaServidorAoCalcular); } catch (Exception) { _domainNotificationManager.Add("Pârâmetros", Errors.ErroAoCalcularJurosCompostos); } return(Task.FromResult <JurosCompostosOutputViewModel>(null)); }
public IActionResult Get([FromQuery] JurosCompostosInputViewModel vm) { if (!ModelState.IsValid) { NotifyModelStateErrors(); return(Response(vm)); } return(Response(_jurosCompostosService.Calcular(vm).Result)); }
public void Deve_Calcular_Com_Tempo_Negativo() { var input = new JurosCompostosInputViewModel { ValorInicial = 100, Meses = -6 }; var resultado = _jurosCompostosService.Calcular(input).Result; Assert.Null(resultado); Assert.True(_domainNotificationManager.HasNotifications()); _domainNotificationManager.Dispose(); }
public void Deve_Calcular_ValorFinal_Errado() { var input = new JurosCompostosInputViewModel { ValorInicial = 100, Meses = 6 }; var resultado = _jurosCompostosService.Calcular(input).Result; Assert.NotEqual(105.10M, resultado.ValorFinal); Assert.False(_domainNotificationManager.HasNotifications()); _domainNotificationManager.Dispose(); }
public void Notificar_Se_ValorInicial_Zero() { var input = new JurosCompostosInputViewModel { ValorInicial = 0, Meses = 5 }; var resultado = _jurosCompostosService.Calcular(input).Result; Assert.Null(resultado); Assert.True(_domainNotificationManager.HasNotifications()); _domainNotificationManager.Dispose(); }