public CalcularIRResult Handle(CalcularIRInput input) { CalcularIRResult result = new CalcularIRResult(); try { // Recupera os contribuintes da base de dados var contribuintes = _contribuinteRepository.ObterTodos(); // Varre todos os contribuintes da base de dados. foreach (var contribuinte in contribuintes) { // Cria um novo imposto var imposto = ImpostoDeRenda.Novo(contribuinte, input.SalarioMinimo); // Verifica se o imposto está válido if (imposto.IsValid()) { result.ContribuintesImpostoDeRenda.Add(imposto); } else { base.AddNotifications(imposto.Notifications); } } // Ordena o resultado. result.ContribuintesImpostoDeRenda = result.ContribuintesImpostoDeRenda.OrderByDescending(x => x.Imposto) .ThenByDescending(x => x.Contribuinte.Nome).ToList(); } catch (Exception ex) { base.AddNotification("Error", $"Houve uma falha inesperada! Mensagem: {ex.Message}"); } return(result); }
public ActionResult<IEnumerable<Contribuinte>> ObterTodos() { var contribuintes = _contribuinteRepository.ObterTodos(); return Created("/api/contribuinte/obtercontribuintes", contribuintes); }