Exemplo n.º 1
0
        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
        public FormModificaVigneto(ListViewItem.ListViewSubItem id, FormVigneto formvigneto, FormHome home)
        {
            InitializeComponent();
            this.id          = id;
            this.formvigneto = formvigneto;
            this.home        = home;

            DbVigneto w = new DbVigneto();

            // lettura dal db dei dati necessari
            // stampa dei dati tramite textbox
            textBox1.Text = w.SelectElement(id, "nome");

            textBox2.Text = w.SelectElement(id, "nrvitimorte");
        }// end form
        }// end button elemina

        // evento che applica le modifiche effettuate dall'utente
        private void ButtonApplica_Click(object sender, EventArgs e)
        {
            // caso in cui l'utente voglia moidifcare entrambi gli elementi
            if (this.comboBoxNomeVigneto.Text != "" && this.numericUpDownNrViti.Value != 0)
            {
                DbVigneto w = new DbVigneto();

                // conversione dei valori da decimal a int per eseguire la sottrazione dei valori
                int nrvitimorte    = int.Parse(w.SelectElement(this.id, "nrvitimorte"));
                int vitisostituite = decimal.ToInt32(this.numericUpDownNrViti.Value);
                int viti           = nrvitimorte - vitisostituite;

                // metodo chiamato 2 volte per apportare tutte le modifiche
                w.ModifyItem(this.comboBoxNomeVigneto.Text, "nome", this.id);
                w.ModifyItem(viti, "nrvitimorte", this.id);

                // chiusura del form attuale a apertura del form precedente
                this.formvigneto.Dispose();
                FormVigneto frm = new FormVigneto(this.home);
                frm.Show();
                this.Dispose();
            }
            // caso in cui l'utente voglia modificare solo il numero di viti
            else if (this.comboBoxNomeVigneto.Text == "" && this.numericUpDownNrViti.Value != 0)
            {
                DbVigneto w = new DbVigneto();

                // conversione dei valori da decimal a int per eseguire la sottrazione dei valori
                int nrvitimorte    = int.Parse(w.SelectElement(this.id, "nrvitimorte"));
                int vitisostituite = decimal.ToInt32(this.numericUpDownNrViti.Value);
                int viti           = nrvitimorte - vitisostituite;

                // chiamata del metodo per modificare un elemento
                w.ModifyItem(viti, "nrvitimorte", this.id);

                // chiusura del form attuale a apertura del form precedente
                this.formvigneto.Dispose();
                FormVigneto frm = new FormVigneto(this.home);
                frm.Show();
                this.Dispose();
            }
            // caso in cui l'utente voglia moidifcare solo il nome del vigneto
            else if (this.comboBoxNomeVigneto.Text != "" && this.numericUpDownNrViti.Value == 0)
            {
                DbVigneto w = new DbVigneto();

                // metodo chiamato 2 volte per apportare tutte le modifiche
                w.ModifyItem(this.comboBoxNomeVigneto.Text, "nome", this.id);

                // chiusura del form attuale a apertura del form precedente
                this.formvigneto.Dispose();
                FormVigneto frm = new FormVigneto(this.home);
                frm.Show();
                this.Dispose();
            }

            // se l'utente scegli di non modificare nulla e preme il  pulsante non succede nulla
        }// end applica