Exemplo n.º 1
0
        public ItemPedidoResultado CalcularPromocao(Produto produto, int quantidade)
        {
            try
            {
                var     resultadoFinal = new ItemPedidoResultado();
                decimal valor          = 10.00M;

                if (quantidade < 3)
                {
                    var produtos = 3 - quantidade;
                    resultadoFinal.Total    = quantidade * produto.Preco;
                    resultadoFinal.Mensagem = "Adicione mais " + produtos + " produto(s) e aproveite a promoção: 3 por 10 Reais.";
                }
                else
                {
                    var media             = (double)quantidade / (double)3;
                    int inteiro           = (int)media;
                    int produtosPromocao  = inteiro * 3;
                    int produtosRestantes = quantidade - produtosPromocao;
                    resultadoFinal.Total    = inteiro * valor;
                    resultadoFinal.Total    = resultadoFinal.Total + (produtosRestantes * produto.Preco);
                    resultadoFinal.Mensagem = "Adicionada(s) " + inteiro + " promoção(ões) e " + produtosRestantes + " produto(s) avulso(s).";
                }
                resultadoFinal.Preco      = produto.Preco;
                resultadoFinal.Quantidade = quantidade;
                return(resultadoFinal);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public IConsulta Executar(CalcularPromocaoEntrada entidade)
        {
            try
            {
                var resultados = new ItemPedidoResultado();

                var resultado = _promocaoFactory.BuscarTipoPromocao(entidade.TipoPromocao);
                return(resultado.CalcularPromocao(entidade.Produto, entidade.Quantidade));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public ItemPedidoResultado CalcularPromocao(Produto produto, int quantidade)
        {
            try
            {
                var resultadoFinal = new ItemPedidoResultado();
                resultadoFinal.Total    = quantidade * produto.Preco;
                resultadoFinal.Preco    = produto.Preco;
                resultadoFinal.Mensagem = "Produto adicionado.";

                return(resultadoFinal);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }