示例#1
0
        }// end FormAggiungiVino

        // evento che aggiunge un elemento al db e chiude il form corrente tornando a quello precedente
        private void ButtonAggiungi_Click(object sender, EventArgs e)
        {
            int NrBottiglie;

            // if che fa in modo che il pulsante non faccia nulla finchè l'utente non avrà inserito tutti i dati
            if (this.comboBoxNome.Text != "" &&
                this.comboBoxTipologia.Text != "" &&
                this.comboBoxVigneto.Text != "" &&
                this.comboBoxBottiglie.Text != "" &&
                int.TryParse(this.comboBoxBottiglie.Text, out NrBottiglie))
            {
                // creazione di un oggetto di tipo vino e deefinizione di tutti i suoi attributi in modo da passare alla
                // query solo un oggetto e non tante stringhe che dovranno pure essere in ordine corretto
                Vino vino = new Vino();
                vino.SetNome(this.comboBoxNome.Text);
                vino.SetAnno(decimal.ToInt16(this.numericUpDown1.Value));
                vino.SetTipologia(this.comboBoxTipologia.Text);
                vino.SetVigneto(this.comboBoxVigneto.Text);
                vino.SetNrbottiglie(NrBottiglie);

                DbVino v = new DbVino();
                v.AddItem(vino);

                // chiusura del form attuale a apertura del form precedente
                this.formvino.Dispose();
                FormVino frm = new FormVino(this.home);
                frm.Show();
                this.Dispose();
            } // end if
        }     //end "ButtonAggiungiClick
        }// end button elimina

        // evento in cui viene premuto il bottone con "applica modifiche"
        private void ButtonApplica_Click(object sender, EventArgs e)
        {
            // caso in cui sono stati modificati entrambi gli elementio modificabili
            if (this.comboBoxNomeVino.Text != "" && this.numericUpDownNrBottiglie.Value != 0)
            {
                DbVino v = new DbVino();

                // conversione di valori da string a int e da decimal a int per eseguire la sottrazione delle bottilgie vendute dal totale
                int nrbottiglie      = int.Parse(v.SelectElement(this.id, "nrbottiglie"));
                int BottiglieVendute = decimal.ToInt32(this.numericUpDownNrBottiglie.Value);
                int NuovoNrBottiglie = nrbottiglie - BottiglieVendute;

                // metodo chiamato 2 volte per apportare tutte le modifiche
                v.ModifyItem(this.comboBoxNomeVino.Text, "nome", this.id);
                v.ModifyItem(NuovoNrBottiglie, "nrbottiglie", this.id);

                // chiudo e riarpo i il form recedente in modo da visualizzare le modifiche
                this.formvino.Dispose();
                FormVino frm = new FormVino(this.home);
                frm.Show();
                this.Dispose();
            }
            // caso in cui l'utente desideri modificare solo il nome
            else if (this.comboBoxNomeVino.Text != "" && this.numericUpDownNrBottiglie.Value == 0)
            {
                // metodo per modifacare un elemento nel db
                DbVino v = new DbVino();
                v.ModifyItem(this.comboBoxNomeVino.Text, "nome", this.id);

                // chiudo e riarpo i il form recedente in modo da visualizzare le modifiche
                this.formvino.Dispose();
                FormVino frm = new FormVino(this.home);
                frm.Show();
                this.Dispose();
            }
            // caso in cui l'utente deisideri modificare solo il numero di bottiglie
            else if (this.comboBoxNomeVino.Text == "" && this.numericUpDownNrBottiglie.Value != 0)
            {
                DbVino v = new DbVino();
                Console.WriteLine("if3");

                // conversione di valori da string a int e da decimal a int per eseguire la sottrazione delle bottilgie vendute dal totale
                int nrbottiglie      = int.Parse(v.SelectElement(this.id, "nrbottiglie"));
                int BottiglieVendute = decimal.ToInt32(this.numericUpDownNrBottiglie.Value);
                int NuovoNrBottiglie = nrbottiglie - BottiglieVendute;

                // metodo per modifacare un elemento nel db
                v.ModifyItem(NuovoNrBottiglie, "nrbottiglie", this.id);

                // chiudo e riarpo i il form recedente in modo da visualizzare le modifiche
                this.formvino.Dispose();
                FormVino frm = new FormVino(this.home);
                frm.Show();
                this.Dispose();
            }

            // nel caso in cui non è stato modificato nessun valore non succede nulla
        }// end applica modifiche
        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
示例#4
0
        public FormAggiungiVino(FormVino formvino, FormHome home)
        {
            InitializeComponent();

            this.formvino = formvino;
            this.home     = home;

            DbVino    v = new DbVino();
            DbVigneto w = new DbVigneto();

            // liste di stringhe per inserire nei vari combobox valori già esistenti
            List <string> NomiVini = new List <string>();

            NomiVini = v.SelectDistinct("nome");

            List <string> TipologiaVini = new List <string>();

            TipologiaVini = v.SelectDistinct("tipologia");

            List <string> VignetoVini = new List <string>();

            VignetoVini = w.SelectDistinct("nome");

            List <string> NrBottiglieVini = new List <string>();

            NrBottiglieVini = v.SelectDistinct("nrbottiglie");

            // ciclo che aggiunge i nomi già presenti nel db nel combobox nome
            for (int i = 0; i < NomiVini.Count; i++)
            {
                comboBoxNome.Items.Add(NomiVini[i]);
            }

            // ciclo che aggiunge le tipologie già presenti nel db nel combobox tipologia
            for (int i = 0; i < TipologiaVini.Count; i++)
            {
                comboBoxTipologia.Items.Add(TipologiaVini[i]);
            }

            // ciclo che aggiunge i vari vigneti presenti nel db nel combobox vigneti
            for (int i = 0; i < VignetoVini.Count; i++)
            {
                comboBoxVigneto.Items.Add(VignetoVini[i]);
            }

            // ciclo che aggiunge i vari numeri di bottiglie al combobox
            // anche se numerico viene utilizzato un combobox perchè spesso si produce lo stesso quantitativo
            // di bottiglie per vini diversi e il numeric updown non permette di selezionare quantità già presenti
            for (int i = 0; i < NrBottiglieVini.Count; i++)
            {
                comboBoxBottiglie.Items.Add(NrBottiglieVini[i]);
            }
        }// end FormAggiungiVino
        }// end form

        // evento che elimina l'elemento attuale dal db
        private void ButtonElimina_Click(object sender, EventArgs e)
        {
            // metodo per eliminare un elemento dal database
            DbVino v = new DbVino();

            v.DeleteItem(this.id);

            // chiusura del form attuale a apertura del form precedente
            this.formvino.Dispose();
            FormVino frm = new FormVino(this.home);

            frm.Show();
            this.Dispose();
        }// end button elimina
示例#6
0
        // visita il db e ordina gli id in base al numero di bottiglie decrescente
        // ritorna la lista di id ordinata in modo da poter poi stampare gli elementi `con maggiore priorità di vendita
        public List <string> VisitVini(DbVino v)
        {
            List <string> NrBottiglieVini = new List <string>();

            NrBottiglieVini = v.Select("nrbottiglie");


            List <string> Id = new List <string>();

            Id = v.Select("id");

            OrdinaLista(NrBottiglieVini, Id);

            // da modificare. messo solamente per togliere l'errore
            return(Id);
        }
        public FormVino(FormHome home)
        {
            InitializeComponent();
            this.home = home;

            DbVino v = new DbVino();

            // creo delle liste di stringhe e attribuisco a ciascuna le varie informazioni contenute nel database
            List <string> NomiVini = new List <string>();

            NomiVini = v.Select("nome");

            List <string> AnnoVini = new List <string>();

            AnnoVini = v.Select("anno");

            List <string> TipologiaVini = new List <string>();

            TipologiaVini = v.Select("tipologia");

            List <string> VignetoVini = new List <string>();

            VignetoVini = v.Select("vigneto");

            List <string> NrBottiglieVini = new List <string>();

            NrBottiglieVini = v.Select("nrbottiglie");

            List <string> Id = new List <string>();

            Id = v.Select("id");

            // ciclo per aggiungere tutti gli item e i subitem alla listview
            for (int i = 0; i < Id.Count; i++)
            {
                ListViewItem entryListItem = listViewDettagli.Items.Add(NomiVini[i]);
                entryListItem.UseItemStyleForSubItems = true;
                ListViewItem.ListViewSubItem annoItem        = entryListItem.SubItems.Add(AnnoVini[i]);
                ListViewItem.ListViewSubItem tipologiaItem   = entryListItem.SubItems.Add(TipologiaVini[i]);
                ListViewItem.ListViewSubItem vignetoItem     = entryListItem.SubItems.Add(VignetoVini[i]);
                ListViewItem.ListViewSubItem nrBottiglieItem = entryListItem.SubItems.Add(NrBottiglieVini[i]);
                ListViewItem.ListViewSubItem id = entryListItem.SubItems.Add(Id[i]);
            }
        }// end form
        public FormModificaVino(ListViewItem.ListViewSubItem id, FormVino formvino, FormHome home)
        {
            InitializeComponent();

            this.id       = id;
            this.formvino = formvino;
            this.home     = home;

            DbVino v = new DbVino();

            // lettura dal databese dei dati necessari e passaggio ai vari textbox che li stamperanno a video
            textBox1.Text = v.SelectElement(id, "nome");

            textBox2.Text = v.SelectElement(id, "anno");

            textBox3.Text = v.SelectElement(id, "tipologia");

            textBox4.Text = v.SelectElement(id, "vigneto");

            textBox5.Text = v.SelectElement(id, "nrbottiglie");
        }// end form