private void btnCijena_Click(object sender, EventArgs e) { PropertyInterface pom = myProperty; //Kupljenje ID vozila iz DGV selektovanog reda string ID = dgv.SelectedRows[0].Cells[0].Value.ToString(); //Kreiranje objekta PropertyCijena i popunjavanje tabele sa cijenama PropertyCijena cijenaTabela = new PropertyCijena(); myForm = cijenaTabela; PopulateGrid(myForm); myProperty = pom; //Visible = false; //Metoda za upisivanje Mail-a i ID korisnika crud.UserMail(UserMail, UserID); //Pozivanje metode UPDATE sa PropertyCijena, selektovani ID i dgv sa popunjenim podacima cijena crud.Update(myForm, ID, dgv); // Visible = true; //Popunjavanje DGV-a nakon zavrsene metode UPDATE PopulateGrid(myProperty); }
//Insert operacija private void btnInsert_Click(object sender, EventArgs e) { //Metoda za upisivanje Mail-a i ID korisnika crud.UserMail(UserMail, UserID); //Pozivanje metode INSERT za zadatu Property klasu crud.Insert(myForm); //Popunjavanje DGV-a nakon zavrsene metode INSERT PopulateGrid(myProperty); if (myForm.GetType() == typeof(PropertyVozilo)) { if (brojRedovaDGVAVozila < dgv.Rows.Count) { PropertyInterface pom = myProperty; //Kupljenje ID vozila iz DGV selektovanog reda string ID = dgv.Rows[dgv.Rows.Count - 1].Cells[0].Value.ToString(); //Kreiranje objekta PropertyCijena i popunjavanje tabele sa cijenama PropertyCijena cijenaTabela = new PropertyCijena(); myForm = cijenaTabela; PopulateGrid(myForm); myProperty = pom; //Visible = false; //Metoda za upisivanje Mail-a i ID korisnika crud.UserMail(UserMail, UserID); //Pozivanje metode UPDATE sa PropertyCijena, selektovani ID i dgv sa popunjenim podacima cijena crud.Update(myForm, ID, dgv); // Visible = true; //Popunjavanje DGV-a nakon zavrsene metode UPDATE PopulateGrid(myProperty); } } }
private void btnOk_Click(object sender, EventArgs e) { Greske = ""; var properties = myInterface.GetType().GetProperties(); //String za dodavanje imena polja koja su obavezna a nisu popunjena foreach (var item in flowPanel.Controls) { try { string value = ""; if (item.GetType() == typeof(InputControl)) { InputControl input = item as InputControl; value = input.GetValueFromTextBox(); //provjera da li unosimo model vozila koji vec postoji u bazi podataka if (properties[0].Name == "ModelID" && properties[01].Name == "Naziv") { PropertyModelVozila propertyModelVozila = new PropertyModelVozila(); SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.GetConnectionString(), CommandType.Text, propertyModelVozila.GetSelectQueryZaModelVozila()); if (reader.HasRows) { while (reader.Read()) { if (reader.GetString(0) == value) { DialogResult dr = MetroMessageBox.Show(this, $"\n\nError! Model vec postoji u bazi", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } } } } else if (properties[0].Name == "ProizvodjacID" && properties[01].Name == "Naziv") { PropertyProizvodjac propertyModelVozila = new PropertyProizvodjac(); SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.GetConnectionString(), CommandType.Text, propertyModelVozila.GetSelectQueryZaModelVozila()); if (reader.HasRows) { while (reader.Read()) { if (reader.GetString(0) == value) { DialogResult dr = MetroMessageBox.Show(this, $"\n\nError! Model vec postoji u bazi", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } } } } string ImePolja = properties.Where(x => (item as InputControl).Name == x.Name).FirstOrDefault().GetCustomAttribute <DisplayNameAttribute>().DisplayName; if (properties.Where(x => (item as InputControl).Name == x.Name && x.GetCustomAttribute <NotRequiredAttribute>() != null).FirstOrDefault() == null && value == "") { Greske += "Polje \"" + ImePolja + "\" ne smije biti prazno!\n"; continue; } else { if (Regex.IsMatch(value, @"^[0-9]{3}[//]{1}[0-9]{3}[/-]{1}[0-9]{3}$") == false && (item as InputControl).Name == "BrojTelefon") { Greske += "Polje \"" + ImePolja + "\" ne smije da sadrzi slova i znakove osim '-' i '/'!\n"; continue; } else if (Regex.IsMatch(value, @"^[a-zA-Z]+$") == false && ((item as InputControl).Name == "Ime" || (item as InputControl).Name == "Prezime" || (item as InputControl).Name == "Gorivo" || (item as InputControl).Name == "Boja")) { Greske += "Polje \"" + ImePolja + "\" ne smije da sadrzi brojeve i znakove!\n"; continue; } else if (Regex.IsMatch(value, @"^[0-9]{13}$") == false && (item as InputControl).Name == "JMB") { Greske += "Polje \"" + ImePolja + "\" mora da sadrzi samo 13 brojeva!\n"; continue; } else if (Regex.IsMatch(value, @"^[2-5]{1}$") == false && (item as InputControl).Name == "BrojVrata") { Greske += "Polje \"" + ImePolja + "\" mora da sadrzi jednu cifru od 2 do 5!\n"; continue; } else if (Regex.IsMatch(value, @"^[0-9\.]+$") == false && (item as InputControl).Name == "Kilometraza") { Greske += "Polje \"" + ImePolja + "\" ne smije da sadrzi slova i znakove!\n"; continue; } else if ((item as InputControl).Name == "BrojRegistracije" && Regex.IsMatch(value, @"^[A-Z0-9]{3}[\-]{1}[A-Z]{1}[\-]{1}[0-9]{3}$") == false) { Greske += "Polje \"" + ImePolja + "\" nije u pravilnom formatu!\n"; continue; } } PropertyInfo property = properties.Where(x => input.Name == x.Name).FirstOrDefault(); property.SetValue(myInterface, Convert.ChangeType(value, property.PropertyType)); } else if (item.GetType() == typeof(InputDateControl)) { InputDateControl input = item as InputDateControl; value = input.GetValueFromDateBox(); PropertyInfo property = properties.Where(x => input.Name == x.Name).FirstOrDefault(); property.SetValue(myInterface, Convert.ChangeType(value, property.PropertyType)); } else if (item.GetType() == typeof(LookUpControl)) { LookUpControl input = item as LookUpControl; value = input.GetKeyValue(); if (value == "") { Greske += "Polje \"" + (item as LookUpControl).Name + "\" ne smije biti prazno!\n"; continue; } PropertyInfo property = properties.Where(x => input.Name == x.Name).FirstOrDefault(); property.SetValue(myInterface, Convert.ChangeType(value, property.PropertyType)); } else if (item.GetType() == typeof(TwoRadioButtonsControl)) { TwoRadioButtonsControl input = item as TwoRadioButtonsControl; value = input.GetChecked(); PropertyInfo property = properties.Where(x => input.Name == x.Name).FirstOrDefault(); property.SetValue(myInterface, Convert.ChangeType(value, property.PropertyType)); } else if (item.GetType() == typeof(ComboBoxControl)) { ComboBoxControl input = item as ComboBoxControl; value = input.GetText(); PropertyInfo property = properties.Where(x => input.Name == x.Name).FirstOrDefault(); property.SetValue(myInterface, Convert.ChangeType(value, property.PropertyType)); } } catch (Exception) { DialogResult dr = MetroMessageBox.Show(this, "Neocekivana greska!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } if (Greske != "") { DialogResult dr = MetroMessageBox.Show(this, Greske, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Provjera poziva Input forme if (state == StateEnum.Create) { DialogResult myResult = MetroMessageBox.Show(this, "Uspjesno ste dodali novi item", "Uspjesno", MessageBoxButtons.OK, MessageBoxIcon.Information); if (myResult == DialogResult.OK) { SqlHelper.ExecuteNonQuery(SqlHelper.GetConnectionString(), CommandType.Text, myInterface.GetInsertQuery(), myInterface.GetInsertParameters().ToArray()); if (myInterface.GetType() == typeof(PropertyVozilo)) { PropertyCijena pomCijena = new PropertyCijena(); SqlHelper.ExecuteNonQuery(SqlHelper.GetConnectionString(), CommandType.Text, pomCijena.GetInsertQuery()); } CRUD.IstorijaCRUD.Istorija(userEmail, StateEnum.Create, myInterface); } } else if (state == StateEnum.Update) { DialogResult myResult = MetroMessageBox.Show(this, "Da li zelite izvrsiti azuriranje ?", "Update", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (myResult == DialogResult.Yes) { SqlHelper.ExecuteNonQuery(SqlHelper.GetConnectionString(), CommandType.Text, myInterface.GetUpdateQuery(), myInterface.GetUpdateParameters().ToArray()); CRUD.IstorijaCRUD.Istorija(userEmail, StateEnum.Update, myInterface); } } DialogResult = DialogResult.OK; }