示例#1
0
 public FormSavePolygon(GMapPolygon poly)
 {
     InitializeComponent();
     polygon = poly;
     region  = new Supan_Regions();
     //polygon.Points
     regionPoints = new Supan_RegionPoints();
 }
示例#2
0
 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;
         }
     }
 }