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);
        }
Exemple #3
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());
            }
        }
Exemple #4
0
        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);
 }