public static void TotalDeTributoDeImportados(Produto [] produtos, TotalizadorDeTributoProdutoImportado TTProdutoImportado) { foreach (Produto produto in produtos) { if (!(produto is ProdutoNacional)) /*verificando se o objeto não é um ProdutoNacional */ { /*caso não seja um produto nacional é realizado um casting da variavel produto*/ ITributoDeProdutoImportado produtoImportado = produto as ITributoDeProdutoImportado; TTProdutoImportado.AcumuladorDeTributoProdutoImportado(produtoImportado); /* No nosso caso apenas a classe ProdutoNacional não implementa a interface ITributoDeProdutoImportado, portanto os demais objetos * são ITributoDeProdutoImportado por isso é feito o casting acima.*/ } } }
static void Main(string[] args) { //OrdenarColecao.ListaString(); GerenciarProdutos gp = new GerenciarProdutos(); Produto produto = null; TotalizadorDeTributoProdutoImportado TTProdutoImportado = null; int op = 0, i = 0; do { op = Menu(); switch (op) { case 1: try { do { CadastrarProduto(produto, gp); Console.WriteLine("Deseja cadastrar outro produto (1-sim) (2-não) \n"); op = int.Parse(Console.ReadLine()); } while (op != 2); // ExibirArrayProdutos(produtos, produto); } catch (ArgumentNullException e) { Console.WriteLine(e.Message); } catch (ArgumentException e) { Console.WriteLine(e.Message); } catch (IndexOutOfRangeException e) { Console.WriteLine(e.Message); } catch (Exception e) { Console.WriteLine(e.Message); } break; case 2: // TotalDeTributoDeImportados(produtos,TTProdutoImportado); exibirTotalDeTributoDeImportados(TTProdutoImportado); break; case 3: OrdenarColecao(gp); break; case 4: break; case 5: try { ExibirRelatorio(gp); } catch (ColecaoVaziaException e) { Console.WriteLine(e.Mensagem); } break; case 6: Console.WriteLine(" Total de tipos de produtos criados : " + Produto.ControleDeTiposProdutos); exibirTotalDeTributoDeImportados(TTProdutoImportado); Console.WriteLine(" Programa encerrado ! \n"); break; } } while (op != 6); Console.Read(); }
public static void exibirTotalDeTributoDeImportados(TotalizadorDeTributoProdutoImportado TTProdutoImportado) { Console.WriteLine("Valor total de tributo de importação arrecadado : " + TTProdutoImportado.AcumuladorTributoProdImportado); }