public static void Main(string[] args) { var orcamento = new Orcamento(); orcamento.AdicionarItem(new Item("Soja", 100.00)); orcamento.AdicionarItem(new Item("Milho", 50.00)); orcamento.AdicionarItem(new Item("Arroz", 50.00)); orcamento.AdicionarItem(new Item("Feijão", 100.00)); orcamento.SetValor(orcamento.Itens.Sum(item => item.Valor)); var impostoIcms = new ICMS(new ISS()); var valorTotalImpostos = impostoIcms.Calcular(orcamento); Console.WriteLine(valorTotalImpostos); Console.ReadKey(); }
static void ComDesignPattern() { Orcamento orcamento = new Orcamento(500); Console.WriteLine($"Valor do Orcamento: R$ {orcamento.Valor}"); Console.WriteLine(); Imposto icms = new ICMS(); Imposto ipi = new IPI(); Imposto iss = new ISS(); //Impostos Separados var valorIcms = icms.Calcular(orcamento); var valorIpi = ipi.Calcular(orcamento); var valorIss = iss.Calcular(orcamento); Console.WriteLine($"Valor do ICMS: R$ {valorIcms}"); Console.WriteLine($"Valor do IPI: R$ {valorIpi}"); Console.WriteLine($"Valor do ISS: R$ {valorIss}"); Console.WriteLine(); //Impostos Juntos Imposto icmsComIpi = new ICMS(new IPI()); Imposto ipiComIss = new IPI(new ISS()); Imposto icmsComIpiComIss = new ICMS(new IPI(new ISS())); var valorICMScomIpi = icmsComIpi.Calcular(orcamento); var valorIpicomIss = ipiComIss.Calcular(orcamento); var valorICMScomIpiComIss = icmsComIpiComIss.Calcular(orcamento); Console.WriteLine($"Valor do ICMS Com Ipi: R$ {valorICMScomIpi}"); Console.WriteLine($"Valor do IPI com ISS: R$ {valorIpicomIss}"); Console.WriteLine($"Valor do ICMS Com IPI e ISS: R$ {valorICMScomIpiComIss}"); Console.ReadKey(); }