private static void PrintTree(Expression expr, string description) { Console.WriteLine(description); var vistor = new PrinterVisitor(); vistor.Visit(expr); }
public FormHome() { InitializeComponent(); // inizializzo una stringa che andrà a contenere i nomi dei vari elementi da poter cercare List <string> righe = new List <string>(); // aggiungo i vari nomi degli elementi alla stringa DbVino v = new DbVino(); DbVigneto w = new DbVigneto(); DbMarmellata m = new DbMarmellata(); righe.Add(v.NameTable()); righe.Add(w.NameTable()); righe.Add(m.NameTable()); // ciclo che aggiunge al menu di scelta i vari nomi inseriti nella stringa 'righe' for (int i = 0; i < righe.Count; i++) { VisualizzaTabella.Items.Add(righe[i]); } //---------------------------------------------------------------------// // sezione per la stampa dei prodotti con maggiore priorità di vendita // //---------------------------------------------------------------------// // implementazione del visitor pattern, chiamata ai metodi che restituiranno delle liste di id ordinate in base al numero di prodotti in magazzino PrinterVisitor p = new PrinterVisitor(); List <string> vini_p = p.VisitVini(v); List <string> marmellate_p = p.VisitMarmellate(m); List <string> vigneti_p = p.VisitVigneti(w); Console.WriteLine(vini_p.Count); // ciclo che aggiunge i 5 vini con maggiore priorità di vendita alla listview for (int i = 0; (i < 5) & (i < vini_p.Count); i++) { ListViewItem entryListItem = listViewPriorita.Items.Add(v.SelectElement(vini_p[i].ToString(), "nome")); entryListItem.UseItemStyleForSubItems = true; ListViewItem.ListViewSubItem quantita = entryListItem.SubItems.Add(v.SelectElement(vini_p[i].ToString(), "nrbottiglie")); } // ciclo che aggiunge i 3 vigneti con maggiore priorità di vendita alla listview for (int i = 0; (i < 3) & (i < vigneti_p.Count); i++) { ListViewItem entryListItem = listViewPriorita.Items.Add(w.SelectElement(vigneti_p[i].ToString(), "nome")); entryListItem.UseItemStyleForSubItems = true; ListViewItem.ListViewSubItem quantita = entryListItem.SubItems.Add(w.SelectElement(vigneti_p[i].ToString(), "nrvitimorte")); } // ciclo che aggiunge i 3 marmellate con maggiore priorità di vendita alla listview for (int i = 0; (i < 3) & (i < marmellate_p.Count); i++) { ListViewItem entryListItem = listViewPriorita.Items.Add(m.SelectElement(marmellate_p[i].ToString(), "frutto")); entryListItem.UseItemStyleForSubItems = true; ListViewItem.ListViewSubItem quantita = entryListItem.SubItems.Add(m.SelectElement(marmellate_p[i].ToString(), "nrbarattoli")); } }// end form
private static TreeNode CreateParametersNode(DbCommandTree tree) { var retNode = new TreeNode("Parameters"); foreach (var paramInfo in tree.Parameters) { var paramNode = new TreeNode(paramInfo.Key); PrinterVisitor.AppendTypeSpecifier(paramNode, paramInfo.Value); retNode.Children.Add(paramNode); } return(retNode); }
internal string Print(DbQueryCommandTree tree) { DebugCheck.NotNull(tree); var queryNode = new TreeNode("Query"); if (tree.Query != null) { PrinterVisitor.AppendTypeSpecifier(queryNode, tree.Query.ResultType); queryNode.Children.Add(_visitor.VisitExpression(tree.Query)); } return(Print(new TreeNode("DbQueryCommandTree", CreateParametersNode(tree), queryNode))); }
internal string Print(DbFunctionCommandTree tree) { DebugCheck.NotNull(tree); var funcNode = new TreeNode("EdmFunction"); if (tree.EdmFunction != null) { funcNode.Children.Add(_visitor.VisitFunction(tree.EdmFunction, null)); } var typeNode = new TreeNode("ResultType"); if (tree.ResultType != null) { PrinterVisitor.AppendTypeSpecifier(typeNode, tree.ResultType); } return(Print(new TreeNode("DbFunctionCommandTree", CreateParametersNode(tree), funcNode, typeNode))); }
internal string Print(DbFunctionCommandTree tree) { Debug.Assert(tree != null, "Null DbFunctionCommandTree"); TreeNode funcNode = new TreeNode("EdmFunction"); if (tree.EdmFunction != null) { funcNode.Children.Add(_visitor.VisitFunction(tree.EdmFunction, null)); } TreeNode typeNode = new TreeNode("ResultType"); if (tree.ResultType != null) { PrinterVisitor.AppendTypeSpecifier(typeNode, tree.ResultType); } return(this.Print(new TreeNode("DbFunctionCommandTree", CreateParametersNode(tree), funcNode, typeNode))); }
static void Main(string[] args) { Person francisco = new Person("Francisco", 26); Person felipe = new Person("Felipe", 1); Person matias = new Person("Matias", 7); Person diego = new Person("Diego", 4); Person juan = new Person("Juan", 22); Person ana = new Person("Ana", 25); Person pedro = new Person("Pedro", 33); Person luis = new Person("Luis", 44); Person agustin = new Person("Agustin", 15); Person javi = new Person("Javi", 70); Person cecilia = new Person("Cecilia", 15); Node <Person> nodoFrancisco = new Node <Person>(francisco); Node <Person> nodoFelipe = new Node <Person>(felipe); Node <Person> nodoMatias = new Node <Person>(matias); Node <Person> nodoDiego = new Node <Person>(diego); Node <Person> nodoJuan = new Node <Person>(juan); Node <Person> nodoAna = new Node <Person>(ana); Node <Person> nodoPedro = new Node <Person>(pedro); Node <Person> nodoLuis = new Node <Person>(luis); Node <Person> nodoAgustin = new Node <Person>(agustin); Node <Person> nodoJavi = new Node <Person>(javi); Node <Person> nodoCecilia = new Node <Person>(cecilia); nodoJavi.AddChildren(nodoLuis); nodoLuis.AddChildren(nodoAna); nodoLuis.AddChildren(nodoJuan); nodoLuis.AddChildren(nodoFrancisco); nodoLuis.AddChildren(nodoPedro); nodoPedro.AddChildren(nodoAgustin); nodoFrancisco.AddChildren(nodoFelipe); nodoFrancisco.AddChildren(nodoCecilia); nodoAna.AddChildren(nodoMatias); nodoJuan.AddChildren(nodoDiego); //Mostrar en pantalla System.Console.WriteLine("\n\n\n"); System.Console.WriteLine("**************************************************************************\n ARBOL GENEALOGICO\n**************************************************************************"); PrinterVisitor pv = new PrinterVisitor(); pv.Visit(nodoJavi); System.Console.WriteLine("\n**************************************************************************"); FamilyAgeVisitor familyAge = new FamilyAgeVisitor(); familyAge.Visit(nodoJavi); Console.WriteLine($"La suma de todas las edades es de {familyAge.FamilyAge} años"); LongestNameVisitor longestName = new LongestNameVisitor(); longestName.Visit(nodoJavi); Console.WriteLine($"El nombre más largo es \"{longestName.LName}\" con {longestName.LName.Length} letras"); OldestChildVisitor oldestChild = new OldestChildVisitor(); oldestChild.Visit(nodoJavi); oldestChild.printOlderChild(oldestChild); System.Console.WriteLine("**************************************************************************"); }