public decimal GetDescontoFinal(decimal descontoInicial, int quantidade)
        {
            int  pontuacaoDoCliente = ServicoDeCredito.ClienteHaQuantosAnos(cpfCliente);
            bool clienteNegativado  = ServicoDeCredito.VerificaClienteNegativado(cpfCliente);

            if (clienteNegativado)
            {
                return(0); //early return
            }

            var result = descontoInicial;

            if (descontoInicial > LIMITE_MAXIMO_DESCONTO_INICIAL)
            {
                result = DESCONTO_MAXIMO;
            }
            if (quantidade > LIMITE_MINIMO_QUANTIDADE)
            {
                result += INCREMENTO_DESCONTO_POR_QUANTIDADE;
            }
            if (pontuacaoDoCliente > PONTUACAO_MINIMA_CLIENTE_PREMIUM)
            {
                result += INCREMENTO_DESCONTO_PREMIUM;
            }
            return(result);
        }
Exemplo n.º 2
0
        void Main(decimal descontoInicial, int quantidade, string cpfCliente)
        {
            int  pontuacaoDoCliente = ServicoDeCredito.ClienteHaQuantosAnos(cpfCliente);
            bool clienteNegativado  = ServicoDeCredito.VerificaClienteNegativado(cpfCliente);

            var descontoCliente =
                new Cliente(cpfCliente)
                .GetDescontoFinal(descontoInicial, quantidade, pontuacaoDoCliente, clienteNegativado);

            Console.WriteLine($"Desconto final: {descontoCliente}");
        }