Пример #1
0
 public void Processa(IList <Boleto> boletos, Fatura fatura)
 {
     foreach (Boleto boleto in boletos)
     {
         Pagamento pagamento = new Pagamento(boleto.Valor, MeioDePagamento.BOLETO);
         fatura.AdicionaPagamento(pagamento);
     }
 }
Пример #2
0
        public NotaFiscal Gera(Fatura fatura)
        {
            double     valor = fatura.ValorMensal;
            NotaFiscal nf    = new NotaFiscal(valor, ImpostoSimplesSobreO(valor));

            foreach (IAcaoAposGerarNota acao in acoes)
            {
                acao.Executa(nf);
            }
            return(nf);
        }
Пример #3
0
        /// <summary>
        /// D: Dependency inversion principle - one should “depend upon abstractions, [not] concretions
        /// </summary>
        private static void DependencyInversion()
        {
            IAcaoAposGerarNota enviarEmail = new EnviadorDeEmail();
            IAcaoAposGerarNota notaFiscal  = new NotaFiscalDao();

            IList <IAcaoAposGerarNota> acoes = new List <IAcaoAposGerarNota>();

            acoes.Add(enviarEmail);
            acoes.Add(notaFiscal);

            GeradorDeNotaFiscal nf = new GeradorDeNotaFiscal(acoes);
            Fatura fatura          = new Fatura("Rodrigo", 200);

            nf.Gera(fatura);

            Console.ReadKey();
        }
Пример #4
0
        private static void Encapsulamento()
        {
            IList <Boleto> boletos = new List <Boleto>();

            boletos.Add(new Boleto(500));
            boletos.Add(new Boleto(500));
            boletos.Add(new Boleto(500));
            boletos.Add(new Boleto(500));

            Fatura fatura = new Fatura("Caelum", 2000);

            ProcessadorDeBoletos pdb = new ProcessadorDeBoletos();

            pdb.Processa(boletos, fatura);

            Console.WriteLine(fatura.Pago);
            Console.ReadKey();
        }