Beispiel #1
0
        static void Main(string[] args)
        {
            var criador     = new NotaFiscalBuilder();
            var criadorItem = new ItemDaNotaBuilder();

            criador.ParaEmpresa("Thiago")
            .ComCnpj("23.456.789/0001-12")

            .ComItem(criadorItem.ComNome("Item1").ComValor(100).Controi())
            .ComItem(criadorItem.ComNome("Item2").ComValor(200).Controi())
            .NaData(DateTime.Now)
            .ComObs("uma obs qualquer");

            criador.AdicionaAcao(new EnviadorDeEmail());
            criador.AdicionaAcao(new EnviadorDeSms());
            criador.AdicionaAcao(new NotaFiscalDao());
            criador.AdicionaAcao(new Multiplicador(2));

            var nf = criador.Constroi();

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

            Console.ReadKey();
        }
        private static void Builder1()
        {
            var criadorDeNotaFiscal = new NotaFiscalBuilder();
            var itens = new ItemDaNotaBuilder();

            criadorDeNotaFiscal
            .ParaEmpresa("LG")
            .ComCnpj("999.999.99-99")
            .ComItem(itens.ComNome("Sapato").ComValor(100).Controi())
            .ComItem(itens.ComNome("Calça").ComValor(500).Controi())
            .NaData(new DateTime(2017, 1, 18))
            .ComObservacoes("Teste obs ");

            var nf = criadorDeNotaFiscal.Constroi();

            Console.WriteLine(nf);
        }
        private static void Observer1()
        {
            var listaDeAcoes = new List <IAcaoAposGerarNota>()
            {
                new EnviadorDeEmail(), new NotaFiscalDao(), new EnviadorPorSMS(), new Multiplicador(10)
            };
            var criadorDeNotaFiscal = new NotaFiscalBuilder(listaDeAcoes);
            var itens = new ItemDaNotaBuilder();

            criadorDeNotaFiscal
            .ParaEmpresa("LG")
            .ComCnpj("999.999.99-99")
            .ComItem(itens.ComNome("Sapato").ComValor(100).Controi())
            .ComItem(itens.ComNome("Calça").ComValor(500).Controi())
            .NaData(new DateTime(2017, 1, 18))
            .ComObservacoes("Teste obs ");

            var nf = criadorDeNotaFiscal.Constroi();

            Console.WriteLine(nf);
        }