-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
128 lines (115 loc) · 5.11 KB
/
Program.cs
File metadata and controls
128 lines (115 loc) · 5.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
namespace ConsoleApplication1
{
internal class Program
{
public static void Main(string[] args)
{
// Console.WriteLine("######## Executando Impostos - Design Patterns Strategy ########...");
// var iss = new ISS();
// var icms = new ICMS();
// var ikcv = new IKCV();
// var icpp = new ICPP();
// var orcamento = new Orcamento(500);
//
// var calculadorDeImpostos = new CalculadorDeImpostos();
// calculadorDeImpostos.RealizaCalculo(orcamento, icms);
// calculadorDeImpostos.RealizaCalculo(orcamento, iss);
//
//
//
//
// Console.WriteLine("######## Finalizando Impostos ########...\n\n" );
//
// Console.WriteLine("######## Executando Descontos - Design Patterns Chains of Responsability ########...");
//
// var calcularDeDescontos = new CalcularDeDescontos();
// var index = 0;
// do
// {
// index++;
// orcamento.AdicionaItem(new Item($"Item { index }", 100 * index));
//
// } while (orcamento.Itens.Count < 6);
//
//
// Console.WriteLine($"Desconto Calculado:{ calcularDeDescontos.Calcula(orcamento) }");
// Console.WriteLine("######## Finalizando Descontos ########...");
//
////
// Console.WriteLine("######## Executando Impostos - Design Patterns Template Method ########...");
// Console.WriteLine("Imposto ICPP Calculado:");
// calculadorDeImpostos.RealizaCalculo(orcamento, icpp);
// Console.WriteLine("Imposto IKCV Calculado:");
// calculadorDeImpostos.RealizaCalculo(orcamento, ikcv);
//
// Console.WriteLine("######## Finalizando Impostos - Design Patterns Template Method ########...");
// Console.WriteLine("######## Executando Impostos - Design Patterns Decorator Method ########...");
// Console.WriteLine("Imposto ISS com ICMS Calculado:");
// iss = new ISS();
// calculadorDeImpostos.RealizaCalculo(orcamento, iss);
//
//
// Console.WriteLine("######## Finalizando Impostos - Design Patterns Decorator Method ########...");
// Console.WriteLine("######## Executando Impostos - Design Patterns State ########...");
// var reforma = new Orcamento(500);
//
// Console.WriteLine($"Valor Inicial: { reforma.Valor }");
//
// Console.WriteLine("Aplicando desconto de acordo ao Estado do Orçamento");
// reforma.AplicaDescontoExtra();
//
// Console.WriteLine($"Valor do Desconto: { reforma.Valor }");
//
//
// Console.WriteLine("Aplicando Estado no Orçamento");
// reforma.Aprova();
//
// Console.WriteLine("Aplicando desconto de acordo ao Estado do Orçamento");
// reforma.AplicaDescontoExtra();
// reforma.Aprova();
//
//
// Console.WriteLine($"Valor do Desconto: { reforma.Valor }");
//
//
// reforma.Finaliza();
// reforma.AplicaDescontoExtra();
//
// Console.WriteLine("######## Finalizando Impostos - Design Patterns State ########...");
Console.WriteLine("######## Executando Impostos - Design Patterns State ########...");
var criadorDeNotaFiscal = new CriadorDeNotaFiscal();
criadorDeNotaFiscal.ParaEmpresa("Empresa Nota Fiscal");
criadorDeNotaFiscal.ComCNPJ("12.123.495/0001-03");
criadorDeNotaFiscal.ComItem(new ItemDaNota("Teste1", 30));
criadorDeNotaFiscal.ComItem(new ItemDaNota("Teste2", 40));
criadorDeNotaFiscal.ComObservacoes("Teste Developer Design Patterns");
criadorDeNotaFiscal.NaDataAtual();
var nf = criadorDeNotaFiscal.Constroi();
Type t = nf.GetType();
foreach (PropertyInfo p in t.GetProperties())
{
if (p.PropertyType.IsGenericType)
{
Type genericList = p.PropertyType.GetType();
foreach (PropertyInfo g in genericList.GetProperties())
{
Debug.WriteLine($" Property: {g.Name} Value: {g.GetValue(g)}");
}
}
Debug.WriteLine($" Property: { p.Name } Value: { p.GetValue(nf) }");
//....
}
// var itemDaNota = new List<ItemDaNota>();
//
// var i = 0;
// itemDaNota.ForEach(inf => itemDaNota.Add(new ItemDaNota($"item { i++ }", inf.Valor * i++)));
//
// var nf = new NotaFiscal("Razao","123",DateTime.Now,500,itemDaNota.Sum(inf => inf.Valor + 0.05),itemDaNota,"teste");
}
}
}