public void CalcularDivisoresPrimos_ErroNaRequisicao() { var requisicao = new CalcularDivisoresPrimosRequisicao { NumeroEscolhido = -100 }; new CalcularDivisoresPrimosExecutor().Executar(requisicao); }
public void CalcularDivisoresPrimos_ComSucesso() { var resultadosEsperados = new List <int> { 2, 5 }; var requisicao = new CalcularDivisoresPrimosRequisicao { NumeroEscolhido = 100 }; CalcularDivisoresPrimosResultado resultado = new CalcularDivisoresPrimosExecutor().Executar(requisicao); Assert.IsNotNull(resultado); Assert.AreEqual(2, resultado.DivisoresPrimosDoNumeroEscolhido.Count); Assert.IsTrue(resultado.DivisoresPrimosDoNumeroEscolhido.Except(resultadosEsperados).Count() == 0); }
public ActionResult Get(int numeroEscolhido) { if (numeroEscolhido < 0) { return(BadRequest("Numero deve ser maior que zero!")); } var requisicaoCalcularPrimosDivisores = new CalcularDivisoresPrimosRequisicao { NumeroEscolhido = Convert.ToInt32(numeroEscolhido) }; CalcularDivisoresPrimosResultado resultadoCalcularDivisoresPrimos = calcularDivisoresPrimosExecutor.Executar(requisicaoCalcularPrimosDivisores); if (resultadoCalcularDivisoresPrimos.DivisoresPrimosDoNumeroEscolhido.Any() && resultadoCalcularDivisoresPrimos.DivisoresPrimosDoNumeroEscolhido.Count > 0) { return(Ok(resultadoCalcularDivisoresPrimos.DivisoresPrimosDoNumeroEscolhido)); } else { return(NotFound()); } }
static void Main(string[] args) { var serviceCollection = new ServiceCollection(); Configuracoes.Configuracoes.ConfiguracoesServico(serviceCollection); var serviceProvider = serviceCollection.BuildServiceProvider(); Console.WriteLine("Digite um número: "); var numeroEscolhido = Console.ReadLine(); try { var requisicaoCalcularDivisores = new CalcularDivisoresRequisicao { NumeroEscolhido = Convert.ToInt32(numeroEscolhido) }; var requisicaoCalcularPrimosDivisores = new CalcularDivisoresPrimosRequisicao { NumeroEscolhido = Convert.ToInt32(numeroEscolhido) }; var calcularDivisoresExecutor = serviceProvider.GetService <ICalcularDivisoresExecutor>(); var calcularDivisoresPrimosExecutor = serviceProvider.GetService <ICalcularDivisoresPrimosExecutor>(); CalcularDivisoresResultado resultadoCalcularDivisores = calcularDivisoresExecutor.Executar(requisicaoCalcularDivisores); CalcularDivisoresPrimosResultado resultadoCalcularDivisoresPrimos = calcularDivisoresPrimosExecutor.Executar(requisicaoCalcularPrimosDivisores); Console.WriteLine("Todos divisores encontrados: "); resultadoCalcularDivisores.DivisoresDoNumeroEscolhido.ForEach(divisor => Console.WriteLine(divisor)); Console.WriteLine("Todos divisores primos encontrados: "); resultadoCalcularDivisoresPrimos.DivisoresPrimosDoNumeroEscolhido.ForEach(divisor => Console.WriteLine(divisor)); } catch (ArgumentException) { Console.WriteLine("Apenas números maiores que zero são aceitos"); } catch (Exception) { Console.WriteLine("Apenas números naturais são aceitos"); } }
public CalcularDivisoresPrimosResultado Executar(CalcularDivisoresPrimosRequisicao requisicao) { if (!ValidarRequisicao(requisicao)) { throw new ArgumentException("requisicao invalida!"); } List <int> divisoresDoNumeroEscolhido = Util.Util.CalcularTodosDivisores(requisicao.NumeroEscolhido); var divisoresPrimosDoNumeroEscolhido = new List <int>(); if (divisoresDoNumeroEscolhido.Any() && divisoresDoNumeroEscolhido.Count > 0) { divisoresPrimosDoNumeroEscolhido = divisoresDoNumeroEscolhido.Where(divisor => Util.Util.EhNumeroPrimo(divisor) && divisor != 1).ToList(); return(new CalcularDivisoresPrimosResultado { DivisoresPrimosDoNumeroEscolhido = divisoresPrimosDoNumeroEscolhido }); } else { return(new CalcularDivisoresPrimosResultado()); } }
private bool ValidarRequisicao(CalcularDivisoresPrimosRequisicao requisicao) { return(requisicao != null && requisicao.NumeroEscolhido > 0); }