示例#1
0
        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
示例#3
0
        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);
        }
示例#4
0
        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)));
        }
示例#5
0
        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)));
        }
示例#6
0
        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)));
        }
示例#7
0
        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("**************************************************************************");
        }