Exemplo n.º 1
0
        static void Main(string[] args)
        {
            // Strategy Pattern
            Console.WriteLine("Strategy Pattern ---------------------");

            ITax icms = new ICMS();
            ITax iss  = new ISS();

            Budget budget = new Budget()
            {
                Value = 300.00
            };


            Console.WriteLine("Calc for ICMS: " + icms.Calc(budget));

            Console.WriteLine("Calc for ISS: " + iss.Calc(budget));

            Console.WriteLine("Strategy Pattern ---------------------");
            Console.ReadKey();
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            Imposto iss   = new ISS();
            Imposto icms  = new ICMS();
            Imposto iccc  = new ICCC();
            Imposto ikcv  = new IKCV();
            Imposto icpp  = new ICPP();
            Imposto ihit  = new IHIT();
            Imposto iAlto = new ImpostoAlto();

            Imposto issComposto = new ISS(new ICMS(new ICCC()));

            Conta conta = new Conta(600, "Fulano de Tal");

            conta.StatusAtual.Depositar(conta, 150);
            Console.WriteLine("Saldo = " + conta.Saldo);

            conta.StatusAtual.Sacar(conta, 1000);
            Console.WriteLine("Saldo = " + conta.Saldo);

            conta.StatusAtual.Sacar(conta, 150);
            Console.WriteLine("Saldo = " + conta.Saldo);

            conta.StatusAtual.Depositar(conta, 500);
            Console.WriteLine("Saldo = " + conta.Saldo);

            conta.StatusAtual.Sacar(conta, 150);
            Console.WriteLine("Saldo = " + conta.Saldo);

            Investimento investimento = new Arrojado();

            RealizadorInvestimentos realizarImposto = new RealizadorInvestimentos();

            realizarImposto.RealizarInvestimento(conta, investimento);

            Orcamento orcamento = new Orcamento(1000);

            orcamento.Itens.Add(new Item("ITEM 01", 100));
            orcamento.Itens.Add(new Item("ITEM", 230));
            orcamento.Itens.Add(new Item("ITEM12", 340));
            orcamento.Itens.Add(new Item("LAPIS", 121));
            orcamento.Itens.Add(new Item("CANETA", 1212));

            CalculadorImpostos calculador = new CalculadorImpostos();

            calculador.RealizarCalculo(orcamento, iss);
            calculador.RealizarCalculo(orcamento, icms);
            calculador.RealizarCalculo(orcamento, iccc);
            calculador.RealizarCalculo(orcamento, ikcv);
            calculador.RealizarCalculo(orcamento, icpp);
            calculador.RealizarCalculo(orcamento, ihit);
            calculador.RealizarCalculo(orcamento, issComposto);
            calculador.RealizarCalculo(orcamento, iAlto);

            AplicarDesconto aplicarDesconto = new AplicarDesconto();

            aplicarDesconto.CalcularDesconto(orcamento);


            Conta conta2 = new Conta(1200, "Outro Fulano");

            IList <Conta> contas = new List <Conta>();

            contas.Add(conta);
            contas.Add(conta2);

            RelatorioCompleto relatorioCompleto = new RelatorioCompleto();

            relatorioCompleto.Imprimir(contas);

            RelatorioSimplificado relatorioSimplificado = new RelatorioSimplificado();

            relatorioSimplificado.Imprimir(contas);


            Orcamento orc1 = new Orcamento(500);

            orc1.EstadoAtual.AplicarDescontoExtra(orc1);
            Console.WriteLine("ORC = " + orc1.Valor);

            orc1.EstadoAtual.Aprovar(orc1);
            orc1.EstadoAtual.AplicarDescontoExtra(orc1);
            Console.WriteLine("ORC = " + orc1.Valor);

            orc1.EstadoAtual.Finalizar(orc1);
            orc1.EstadoAtual.AplicarDescontoExtra(orc1);
            orc1.EstadoAtual.Reprovar(orc1);



            Console.ReadKey();
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            Console.WriteLine("----- Curso Design Patterns -----");

            IImposto iss  = new ISS();
            IImposto icms = new ICMS();

            Orcamento orcamento = new Orcamento(500);

            CalculadorImposto calculador = new CalculadorImposto();
            var resultado = calculador.Calcular(orcamento, iss);

            Console.WriteLine($"Orçamento ISS: {orcamento.Valor} , Imposto: {resultado}");

            IImposto ickv = new IKCV();

            resultado = calculador.Calcular(orcamento, ickv);

            Console.WriteLine($"Orçamento IKCV: {orcamento.Valor} , Imposto: {resultado}");

            ImpostoComposto insdc = new INSDC(new INSPT());

            Console.WriteLine($"Orçamento INSDC: {orcamento.Valor} , Imposto: {insdc.Calcular(orcamento)}");


            Orcamento marketing = new Orcamento(1200);

            marketing.AplicaDescontoExtra();
            Console.WriteLine($"Orçamento Marketing: {marketing.Valor} , Estado: {marketing.EstadoAtual}");

            marketing.Aprova();
            marketing.AplicaDescontoExtra();
            Console.WriteLine($"Orçamento Marketing: {marketing.Valor} , Estado: {marketing.EstadoAtual}");

            marketing.Finaliza();
            Console.WriteLine($"Orçamento Marketing: {marketing.Valor} , Estado: {marketing.EstadoAtual}");
            // marketing.AplicaDescontoExtra();


            ///        BUILDER PATTERN / FLUENT INTERFACE

            GeradorNotaFiscal geradorNF = new GeradorNotaFiscal();

            geradorNF
            .ParaEmpresa("RMac Hambone Sys compliance")
            .ComCnpj("923.321.001/0001-12")
            .comItem(new NotaFiscalItem("item 1", 10.2, 0.1))
            .comItem(new NotaFiscalItem("item 2", 13.7, 0.1))
            .comItem(new NotaFiscalItem("item 3", 20.2, 0.1))
            .comItem(new NotaFiscalItem("item 4", 110.2, 0.1))
            .NaDataAtual()
            .ComObservacoes("Entregar no bar da esquina");

            ///       OBSERVER PATTERN

            geradorNF.AdicionarAcao(new NotaDao());
            geradorNF.AdicionarAcao(new NotaEnvio());
            geradorNF.AdicionarAcao(new NotaSMS());

            NotaFiscal NF001 = geradorNF.Gerar();

            Console.WriteLine($"Notafiscal: Valor {NF001.ValorBruto} - Impostos: {NF001.Impostos}");



            Console.ReadKey();
        }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            //------------------------------------------------------------------------------
            //CALCULADOR DE IMPOSTO

            //Imposto iss = new ISS();
            //Imposto icms = new ICMS();

            //Orcamento orcamento = new Orcamento(500.0);

            //CalculadorDeImpostos calculador = new CalculadorDeImpostos();

            //calculador.RealizaCalculo(orcamento, iss);

            //-----------------DECORATOR-------------------------------------------------------------
            //CALCULADOR DE DESCONTO

            //CalculadorDeDescontos calculador = new CalculadorDeDescontos();
            //Orcamento orcamento = new Orcamento(500);

            //orcamento.AdicionaItem(new Item("CANETA", 500));
            //orcamento.AdicionaItem(new Item("LAPIS", 500));

            //double desconto = calculador.Calcula(orcamento);
            //Console.WriteLine(desconto);

            Imposto iss = new ISS();

            Orcamento orcamento = new Orcamento(100);
            double    valor     = iss.Calcula(orcamento);


            iss.Calcula(orcamento);


            Console.WriteLine(valor);

            Console.ReadKey();

            //----------------STATES--------------------------------------------------------------

            //Orcamento reforma = new Orcamento(500);

            //Console.WriteLine(reforma.Valor);

            //reforma.AplicaDesscontoExtra();

            //Console.WriteLine(reforma.Valor);

            //reforma.Aprova();

            //reforma.AplicaDesscontoExtra();

            //Console.WriteLine(reforma.Valor);

            //reforma.Finaliza();

            //reforma.AplicaDesscontoExtra();

            //Console.WriteLine(reforma.Valor);
            //Console.ReadKey();

            //-----------BUILDER---------------------------------------------------------------------

            IList <ItemDaNota> itensDaNota = new List <ItemDaNota>();

            itensDaNota.Add(new ItemDaNota("Biscoito", 2.50));
            itensDaNota.Add(new ItemDaNota("Desodorante", 8.00));
            itensDaNota.Add(new ItemDaNota("Feijão", 10.0));

            double valorTotal = 0;

            foreach (var item in itensDaNota)
            {
                valorTotal += item.Valor;
            }

            double impostos = valorTotal * 0.05;

            NotaFiscal nf =
                new NotaFiscal
                (
                    "razao",
                    "cnpj",
                    DateTime.Now,
                    valorTotal,
                    impostos,
                    itensDaNota,
                    "obs qualquer"

                );

            //NotaFiscalBuilder criador = new NotaFiscalBuilder();

            NotaFiscal nf2 = new NotaFiscalBuilder()
                             .ParaEmpresa("Caelum Ensino e Inovacao")
                             .ComCnpj("Caelum Ensino e Inovacao")
                             .NaDataAtual()
                             .ComObservacoes("Uma obs qualquer")
                             .ComItem(new ItemDaNota("Biscoito", 100.0))
                             .ComItem(new ItemDaNota("Desodorante", 200.0))
                             .Constroi();


            //NotaFiscal nf = criador.Constroi();

            Console.WriteLine(nf.ValorBruto);
            Console.WriteLine(nf.Impostos);
            Console.ReadKey();

            //------------------------------------------------------------------------------//
            var conta = new Conta.Conta(500);

            conta.Saca(600);

            Console.WriteLine(conta);

            conta.Saca(100);
        }