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); }
public NotaFiscal Gera(Fatura fatura) { double valor = fatura.ValorMensal; NotaFiscal nf = new NotaFiscal(valor, ImpostoSimplesSobreO(valor)); foreach (var acao in _listaAcoes) { acao.Executa(nf); } return(nf); }
static void Main(string[] args) { IList <IAcaoAposGerarNota> acoes = new List <IAcaoAposGerarNota>(); Fatura fatura = new Fatura(4.200, "Victor"); acoes.Add(new EnviadorDeEmail()); acoes.Add(new NotaFiscalDao()); GeradorDeNotaFiscal gnf = new GeradorDeNotaFiscal(acoes); gnf.Gera(fatura); Console.ReadKey(); }
static void Main(string[] args) { EnviadorDeEmail enviadorDeEmail = new EnviadorDeEmail(); NotaFiscalDao nfDao = new NotaFiscalDao(); IList <IAcaoAposGerarNota> acoes = new List <IAcaoAposGerarNota>(); acoes.Add(new EnviadorDeEmail()); acoes.Add(new NotaFiscalDao()); acoes.Add(new SAP()); GeradorDeNotaFiscal gnf = new GeradorDeNotaFiscal(acoes); Fatura fatura = new Fatura(200, "Renan Saggio"); gnf.Gera(fatura); Console.ReadKey(); }
static void Main(string[] args) { //Exemplo de uma classe com acoplamento /*class GeradorDeNotaFiscal * { * private EnviadorDeEmail email; * private NotaFiscalDao dao; * * public GeradorDeNotaFiscal(EnviadorDeEmail email, NotaFiscalDao dao) { * this.email = email; * this.dao = dao; * } * * public NotaFiscal Gera(Fatura fatura) { * * double valor = fatura.ValorMensal; * * NotaFiscal nf = new NotaFiscal(valor, ImpostoSimplesSobreO(valor)); * * email.EnviaEmail(nf); * dao.Persiste(nf); * * return nf; * } * * private double ImpostoSimplesSobreO(double valor) { * return valor * 0.06; * } * }*/ EnviadorDeEmail enviadorDeEmail = new EnviadorDeEmail(); NotaFiscalDao notadao = new NotaFiscalDao(); IList <IAcaoAposGerarNota> acoes = new List <IAcaoAposGerarNota>(); acoes.Add(new EnviadorDeEmail()); acoes.Add(new NotaFiscalDao()); GeradorDeNotaFiscal gfn = new GeradorDeNotaFiscal(acoes); Fatura fatura = new Fatura(200, "Marcelo"); gfn.gera(fatura); Console.ReadLine(); }