public async Task <RespostaPadrao> Soma(double num1, double num2)
        {
            RespostaPadrao resultado = new RespostaPadrao();
            List <int>     list      = new List <int>();

            try
            {
                int result;

                result = Convert.ToInt32(num1) + Convert.ToInt32(num2);
                list.Add(result);

                resultado.MensagemSucesso  = "o resultado é: " + result;
                resultado.DeuErro          = false;
                resultado.MensagemErro     = null;
                resultado.Resultados       = list;
                resultado.DataHoraResposta = DateTime.Now;

                return(resultado);
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #2
0
        public async Task <ActionResult <RespostaPadrao> > GetDivisoresPrimos(int num1)
        {
            IOperacoesMatematicas operacoesMatematicas = new OperacoesMatematicasRepository();

            RespostaPadrao resposta = new RespostaPadrao();

            try
            {
                resposta = await operacoesMatematicas.RetornaNumerosDivisores(num1);

                if (resposta.DeuErro == false)
                {
                    if (resposta.Resultados.Count > 0)
                    {
                        resposta = await operacoesMatematicas.RetornaNumerosDivisoresPrimos(num1, resposta);
                    }
                }

                return(resposta);
            }
            catch (Exception ex)
            {
                return(NotFound(
                           new
                {
                    Mensagem = ex.Message
                }));
            }
        }
        public async Task <RespostaPadrao> RetornaNumerosDivisoresPrimos(int num1, RespostaPadrao resposta)
        {
            RespostaPadrao resultado = new RespostaPadrao();
            List <int>     list      = new List <int>();

            try
            {
                foreach (var numero in resposta.Resultados)
                {
                    resultado = await RetornaSeNumeroEhPrimo(numero);

                    if (resultado.DeuErro == false)
                    {
                        list.Add(numero);
                    }
                }

                if (list.Count > 0)
                {
                    resultado.MensagemSucesso = "os divisores do número: " + num1 + " tem os seguintes numeros primos: ";

                    foreach (var numero in list)
                    {
                        resultado.MensagemSucesso += numero + "; ";
                    }

                    resultado.DeuErro          = false;
                    resultado.MensagemErro     = null;
                    resultado.Resultados       = list;
                    resultado.DataHoraResposta = DateTime.Now;
                }
                else
                {
                    resultado.DeuErro          = true;
                    resultado.MensagemErro     = "Número: " + num1 + " não possui números primos";
                    resultado.DataHoraResposta = DateTime.Now;
                    resultado.Resultados       = null;
                }

                return(resultado);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public async Task <RespostaPadrao> RetornaNumerosDivisores(int num1)
        {
            RespostaPadrao resultado = new RespostaPadrao();
            List <int>     list      = new List <int>();


            try
            {
                for (int i = num1; i > 0; i--)
                {
                    if (num1 % i == 0)
                    {
                        list.Add(i);
                    }
                }

                if (list.Count > 0)
                {
                    list.Reverse();// Como o calculo de divisões é feito dos maiores valores para os menores, fazemos o reverso na lista para exibir numeros em ordem crescente
                    resultado.MensagemSucesso = "os divisores são: ";

                    foreach (var numero in list)
                    {
                        resultado.MensagemSucesso += numero + "; ";
                    }

                    resultado.DeuErro          = false;
                    resultado.MensagemErro     = null;
                    resultado.Resultados       = list;
                    resultado.DataHoraResposta = DateTime.Now;
                }
                else
                {
                    resultado.DeuErro          = true;
                    resultado.MensagemErro     = "Número: " + num1 + " não é divisível";
                    resultado.DataHoraResposta = DateTime.Now;
                    resultado.Resultados       = null;
                }

                return(resultado);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public async Task <RespostaPadrao> RetornaSeNumeroEhPrimo(int num1)
        {
            RespostaPadrao resultado = new RespostaPadrao();

            try
            {
                int  m       = 0;
                bool ehPrimo = true;

                m = num1 / 2;
                for (int i = 2; i <= m; i++)
                {
                    if (num1 % i == 0)
                    {
                        ehPrimo = false;
                        break;
                    }
                }
                if (ehPrimo == true)
                {
                    resultado.DeuErro          = false;
                    resultado.MensagemErro     = null;
                    resultado.MensagemSucesso  = "Número: " + num1 + " é um número primo";
                    resultado.Resultados       = null;
                    resultado.DataHoraResposta = DateTime.Now;
                }
                else
                {
                    resultado.DeuErro          = true;
                    resultado.MensagemErro     = "Número: " + num1 + " não é um número primo";
                    resultado.MensagemSucesso  = null;
                    resultado.Resultados       = null;
                    resultado.DataHoraResposta = DateTime.Now;
                }

                return(resultado);
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #6
0
        public RespostaPadrao <RetornoTransacao> Efetuar(RequisicaoDeTransacao transacao)
        {
            RespostaPadrao <RetornoTransacao> resultado = new RespostaPadrao <RetornoTransacao>();

            try
            {
                var validacao = ValidarObjetoDeRequisicao(transacao);
                if (!validacao.IsValid)
                {
                    resultado.ConfigurarResposta(validacao);
                }
                else
                {
                    var contaOrigem  = new ContaCorrente(transacao.Origem.Agencia, transacao.Origem.Numero, transacao.Origem.Digito);
                    var contaDestino = new ContaCorrente(transacao.Destino.Agencia, transacao.Destino.Numero, transacao.Destino.Digito);

                    contaOrigem  = ValidarContaCorrente(contaOrigem, "origem");
                    contaDestino = ValidarContaCorrente(contaDestino, "destino");

                    _movimentacao.Debitar(contaOrigem, transacao.Valor);
                    _movimentacao.Creditar(contaDestino, transacao.Valor);

                    resultado.ConfigurarResposta(true, new RetornoTransacao("Transação concluída com sucesso."));
                }
            }
            catch (ExcecaoDeDominio ex)
            {
                resultado.ConfigurarResposta(ex);
            }
            catch (Exception ex)
            {
                resultado.ConfigurarResposta(ex);
            }

            return(resultado);
        }