public FormSavePolygon(GMapPolygon poly) { InitializeComponent(); polygon = poly; region = new Supan_Regions(); //polygon.Points regionPoints = new Supan_RegionPoints(); }
private void buttonUredu_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(nazivPoligonaTextBox.Text) || string.IsNullOrWhiteSpace(opisPoligonaTextBox.Text)) { MessageBox.Show("Molimo unesite valjani naziv/opis."); } else { try { using (var mapDB = new MapEntities()) { var polyAlreadyInDataBase = mapDB.Supan_Regions.Where(p => p.NAZIV_REGIJE == nazivPoligonaTextBox.Text && p.OPIS_REGIJE == opisPoligonaTextBox.Text).FirstOrDefault(); if (polyAlreadyInDataBase != null) { MessageBox.Show("Ta regija već je zapisana u bazi!\n Provjerite spremljene poligone.", "Upozorenje", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); } else { var regionToSave = new Supan_Regions { NAZIV_REGIJE = nazivPoligonaTextBox.Text, OPIS_REGIJE = opisPoligonaTextBox.Text }; mapDB.Supan_Regions.Add(regionToSave); mapDB.SaveChanges(); var regionId = mapDB.Supan_Regions.Where(r => r.NAZIV_REGIJE == regionToSave.NAZIV_REGIJE && r.OPIS_REGIJE == regionToSave.OPIS_REGIJE).Select(r => r.ID).FirstOrDefault(); foreach (var point in polygon.Points) { decimal lat = Convert.ToDecimal(point.Lat); decimal lng = Convert.ToDecimal(point.Lng); lat = decimal.Round(lat, 6, MidpointRounding.AwayFromZero); lng = decimal.Round(lng, 6, MidpointRounding.AwayFromZero); mapDB.Supan_RegionPoints.Add( new Supan_RegionPoints { ID_REGIJE = regionId, LAT = lat, LNG = lng }); } try { mapDB.SaveChanges(); } catch (Exception) { MessageBox.Show("Dogodila se pogreška!'."); throw; } MessageBox.Show("Uspješno ste spremili regiju.\n Spremljeni poligon nalazi se pod opcijom\n 'Spremljene lokacije / poligoni'.", "Upozorenje", MessageBoxButtons.OK, MessageBoxIcon.Information); savingSuccessfull = true; this.Hide(); } } } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx) { Exception raise = dbEx; foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { string message = string.Format("{0}:{1}", validationErrors.Entry.Entity.ToString(), validationError.ErrorMessage); // raise a new exception nesting // the current instance as InnerException raise = new InvalidOperationException(message, raise); } } throw raise; } } }