public NF Gera(Fatura fatura) { double valor = fatura.ValorMensal; NF nf = new NF(valor, ImpostoSimplesSobreO(valor)); // Agora podemos ter 1, 2, 5, 10, 20 ações foreach (var acao in this.acoes) { acao.Executar(nf); } return(nf); }
static void Main(string[] args) { Fatura f = new Fatura(150.00, "Jimmy Rios Leung"); IList <IAcaoAposGerarNF> acoes = new List <IAcaoAposGerarNF>(); acoes.Add(new EnviadorEmail()); acoes.Add(new NFDAO()); GeradorNF geradorNF = new GeradorNF(acoes); var nf = geradorNF.Gera(f); Console.WriteLine("NF gerada com sucesso."); Console.WriteLine(String.Format("Valor Bruto: {0}", nf.ValorBruto)); Console.WriteLine(String.Format("Valor Líquido: {0}", nf.ValorLiquido)); Console.WriteLine(String.Format("Impostos: {0}", nf.Impostos)); System.Threading.Thread.Sleep(10000); }