Example #1
0
        public NotaFiscal Constroi()
        {
            NotaFiscal nf = new NotaFiscal(RazaoSocial, CNPJ, ImpostoNota, ValorNota, ItensNota);

            foreach (IAcoes acoes in ListaAcoes)
            {
                acoes.ExecutarAcao(nf);
            }

            return nf;
        }
Example #2
0
        /// <summary>
        /// Padrao Observer - Utiliza-se em cenarios onde precisa-se executar N ações após determinado evento
        /// de maneira desacoplada do codigo principal. Nesse caso, após a geração da nota fiscal, deve-se gerar
        /// varios eventos pertinentes ao negocio, neste caso, o observer se aplica.
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            NotaFiscalBuilder builder = new NotaFiscalBuilder();

            builder.AdicionarAcao(new Acoes.EnvioEmail());
            builder.AdicionarAcao(new Acoes.Impressoes());
            builder.AdicionarAcao(new Acoes.Persistencia());


            NotaFiscal.NotaFiscal nf = builder.builderRazaoSocial("Microsoft")
                                       .builderCNPJ("000.000.000./0001-03")
                                       .builderItemNota(new ItemNotaFiscal(350))
                                       .builderItemNota(new ItemNotaFiscal(450))
                                       .builderItemNota(new ItemNotaFiscal(120))
                                       .builderItemNota(new ItemNotaFiscal(890))
                                       .Constroi().Print();

            Console.Read();
        }
Example #3
0
 private void ImprimirNotaFiscal(NotaFiscal.NotaFiscal nf)
 {
     Console.WriteLine("Imprimindo nota fiscal...");
 }
Example #4
0
 public void ExecutarAcao(NotaFiscal.NotaFiscal nf)
 {
     this.ImprimirNotaFiscal(nf);
 }
Example #5
0
 private void EnviarPorEmail(NotaFiscal.NotaFiscal nf)
 {
     Console.WriteLine("Enviando nota por e-mail...");
 }
Example #6
0
 public void ExecutarAcao(NotaFiscal.NotaFiscal nf)
 {
     this.EnviarPorEmail(nf);
 }