Ejemplo n.º 1
0
        public bool SaveOperacaoMatematica(OperacaoMatematica operacao)
        {
            var ctx = HttpContext.Current;

            if (ctx != null)
            {
                try
                {
                    var currentData = ((OperacaoMatematica[])ctx.Cache[CacheKey]).ToList();


                    currentData.Add(operacao);
                    ctx.Cache[CacheKey] = currentData.ToArray();

                    return(true);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());

                    return(false);
                }
            }
            return(false);
        }
Ejemplo n.º 2
0
        public OperacaoMatematicaRepository()
        {
            var ctx = HttpContext.Current;

            if (ctx != null)
            {
                if (ctx.Cache[CacheKey] == null)
                {
                    var operacao = new OperacaoMatematica[]
                    {
                        new OperacaoMatematica()
                        {
                            Numero1   = 1,
                            Numero2   = 1,
                            Resultado = 1
                        },
                        new OperacaoMatematica()
                        {
                            Numero1   = 1,
                            Numero2   = 2,
                            Resultado = 2
                        }
                    };
                    ctx.Cache[CacheKey] = operacao;
                }
            }
        }
Ejemplo n.º 3
0
        public static void Executar()
        {
            //Executa diretamente o método
            Console.WriteLine($"Duplicar(7.5): {Duplicar(7.5)}");

            //Executa diretamente o método
            Console.WriteLine($"Triplicar(7.5): {Triplicar(7.5)}");

            //invoca o delegado
            OperacaoMatematica metodoMultiplicacao = Duplicar;

            Console.WriteLine($"Duplicar(7.5): {metodoMultiplicacao(7.5)}");

            //troca a referência
            metodoMultiplicacao = Triplicar;
            Console.WriteLine($"Triplicar(7.5): {metodoMultiplicacao(7.5)}");

            // instancia um delegado com um método anônimo
            OperacaoMatematica metodoQuadrado = delegate(double input)
            {
                return(input * input);
            };

            double quadrado = metodoQuadrado(5);

            Console.WriteLine("quadrado: {0}", quadrado);

            // intancia um delegado com uma expressão lambda
            OperacaoMatematica metodoCubo = s => s * s * s;
            double             cubo       = metodoCubo(4.375);

            Console.WriteLine("cubo: {0}", cubo);
        }
Ejemplo n.º 4
0
        public HttpResponseMessage Gravar(OperacaoMatematica operacao)
        {
            operacaoRepository.SaveOperacaoMatematica(operacao);

            var response = Request.CreateResponse <OperacaoMatematica>(System.Net.HttpStatusCode.Created, operacao);

            return(response);
        }
Ejemplo n.º 5
0
        public HttpResponseMessage Subtrair(OperacaoMatematica operacao)
        {
            OperacaoMatematica novaOperacao = new OperacaoMatematica();

            novaOperacao.Numero1 = operacao.Numero1;
            novaOperacao.Numero2 = operacao.Numero2;
            novaOperacao.Subtrair();
            var response = Request.CreateResponse <OperacaoMatematica>(System.Net.HttpStatusCode.Created, novaOperacao);

            return(response);
        }
Ejemplo n.º 6
0
        public void DeveResolverAExpressaoEliminandoOsTresParentesesUmColcheteUmaChave()
        {
            ExpressaoMatematica = new ExpressaoNumerica(ExpressaoComTresParentesesUmColcheteUmaChave);
            Assert.IsTrue(String.Compare(ExpressaoMatematica.Parentese.Resolver(), "8116/{1+[3*540+3]*5}") == 0);
            ExpressaoMatematica.Colchete.AdicionarExpressao(ExpressaoMatematica.Parentese.Expressao.ToString());
            Assert.IsTrue(String.Compare(ExpressaoMatematica.Colchete.Resolver(), "8116/{1+1623*5}") == 0);
            ExpressaoMatematica.Chave.AdicionarExpressao(ExpressaoMatematica.Colchete.Expressao.ToString());
            Assert.IsTrue(String.Compare(ExpressaoMatematica.Chave.Resolver(), "8116/8116") == 0);
            var resultadoFinal = new OperacaoMatematica(ExpressaoMatematica.Chave.Expressao.ToString());

            Assert.AreEqual(resultadoFinal.Calcular(), 1);
        }
Ejemplo n.º 7
0
        public HttpResponseMessage Multiplicar(OperacaoMatematica operacao)
        {
            OperacaoMatematica novaOperacao = new OperacaoMatematica();


            novaOperacao.Numero1 = operacao.Numero1;
            novaOperacao.Numero2 = operacao.Numero2;
            novaOperacao.Multiplicar();

            var response = Request.CreateResponse(System.Net.HttpStatusCode.Created, novaOperacao.Resultado);

            return(response);
        }
        public HttpResponseMessage Post(OperacaoMatematica operacao) 
        {

            OperacaoMatematica novaOperacao = new OperacaoMatematica();

            novaOperacao.Numero1 = operacao.Numero1;
            novaOperacao.Numero2 = operacao.Numero2;
            novaOperacao.Multiplicar();

            operacaoRepository.SaveOperacaoMatematica(novaOperacao);

            var response = Request.CreateResponse<OperacaoMatematica>(System.Net.HttpStatusCode.Created, novaOperacao);

            return response;

        }
Ejemplo n.º 9
0
        /// <summary>
        /// Teste de Delegator
        /// </summary>
        public void DelegatorSample()
        {
            //Delegator
            OperacaoMatematica operador = Dobro;

            Console.WriteLine($"Dobro => { operador(2)}");

            //Metodo anonimo
            operador = delegate(double num)
            {
                return(num * num);
            };

            Console.WriteLine($"Quadrado => { operador(4)}");

            //Delegate com Lamda Expression
            operador = d => d + 10;

            Console.WriteLine($"Soma 10=> {operador(2320)}");
        }
Ejemplo n.º 10
0
        public void MetodoSomarCorreto()
        {
            int total = OperacaoMatematica.Somar(2, 2);

            Assert.AreSame(4, total);
        }