public void CalcularDivisores_ErroNaRequisicao()
        {
            var requisicao = new CalcularDivisoresRequisicao {
                NumeroEscolhido = -100
            };

            new CalcularDivisoresExecutor().Executar(requisicao);
        }
        public void CalcularDivisores_ComSucesso()
        {
            var resultadosEsperados = new List <int> {
                1, 2, 4, 5, 10, 20, 25, 50, 100
            };
            var requisicao = new CalcularDivisoresRequisicao {
                NumeroEscolhido = 100
            };
            CalcularDivisoresResultado resultado = new CalcularDivisoresExecutor().Executar(requisicao);

            Assert.IsNotNull(resultado);
            Assert.AreEqual(9, resultado.DivisoresDoNumeroEscolhido.Count);
            Assert.IsTrue(resultado.DivisoresDoNumeroEscolhido.Except(resultadosEsperados).Count() == 0);
        }
        public CalcularDivisoresResultado Executar(CalcularDivisoresRequisicao requisicao)
        {
            if (!ValidarRequisicao(requisicao))
            {
                throw new ArgumentException("requisicao inválida");
            }

            List <int> divisoresDoNumeroEscolhido = Util.Util.CalcularTodosDivisores(requisicao.NumeroEscolhido);

            if (divisoresDoNumeroEscolhido.Any() && divisoresDoNumeroEscolhido.Count > 0)
            {
                return(new CalcularDivisoresResultado {
                    DivisoresDoNumeroEscolhido = divisoresDoNumeroEscolhido
                });
            }
            else
            {
                return(new CalcularDivisoresResultado());
            }
        }
Beispiel #4
0
        public ActionResult GetAll(int numeroEscolhido)
        {
            if (numeroEscolhido < 0)
            {
                return(BadRequest("Numero deve ser maior que zero!"));
            }

            var requisicaoCalcularDivisores = new CalcularDivisoresRequisicao {
                NumeroEscolhido = Convert.ToInt32(numeroEscolhido)
            };
            CalcularDivisoresResultado resultadoCalcularDivisores = calcularDivisoresExecutor.Executar(requisicaoCalcularDivisores);

            if (resultadoCalcularDivisores.DivisoresDoNumeroEscolhido.Any() && resultadoCalcularDivisores.DivisoresDoNumeroEscolhido.Count > 0)
            {
                return(Ok(resultadoCalcularDivisores.DivisoresDoNumeroEscolhido));
            }
            else
            {
                return(NotFound());
            }
        }
Beispiel #5
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");
            }
        }
 private bool ValidarRequisicao(CalcularDivisoresRequisicao requisicao)
 {
     return(requisicao != null && requisicao.NumeroEscolhido > 0);
 }