}// 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
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
// 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