public void Actualizar(Alarma alarma, string nombre, List <string> nroPlacas, List <int> codGeos, int codGeoInicio, List <string> ciDest, string userName) { Alarma al; using (var transation = db.Database.BeginTransaction()) { try { alarma.NombreAlarma = nombre; DelAllAlarmaGeo(alarma.CodAlarma); DelAllAlarmaVeh(alarma.CodAlarma); DelAllAlarmaDest(alarma.CodAlarma); foreach (var nroPlaca in nroPlacas) { AlarmaVehiculo alarmaVehiculo = new AlarmaVehiculo { CodAlarma = alarma.CodAlarma, NroPlaca = nroPlaca, UsuaReg = userName, FechaReg = DateTime.Now }; db.AlarmaVehiculo.Add(alarmaVehiculo); } db.SaveChanges(); foreach (var codGeo in codGeos) { AlarmaGeocerca alarmaGeo = new AlarmaGeocerca { CodAlarma = alarma.CodAlarma, CodigoGEO = codGeo, UsuaReg = userName, FechaReg = DateTime.Now }; if (codGeoInicio > 0) { if (codGeo == codGeoInicio) { alarmaGeo.Inicio = true; } } db.AlarmaGeocerca.Add(alarmaGeo); } db.SaveChanges(); foreach (var ci in ciDest) { AlarmaDestinatarios alarmaDest = new AlarmaDestinatarios { CodAlarma = alarma.CodAlarma, CI = ci, UsuaReg = userName, FechaReg = DateTime.Now }; db.AlarmaDestinatarios.Add(alarmaDest); } db.SaveChanges(); al = (from s in db.Alarma where s.CodAlarma == alarma.CodAlarma select s).FirstOrDefault(); if (al != null) { al.Activa = alarma.Activa; al.CantidadEnvio = alarma.CantidadEnvio; //al.CategoriaAlarma = alarma.CategoriaAlarma; al.Distancia = alarma.Distancia; al.Distancia2 = alarma.Distancia2; al.email = alarma.email; al.FechaHora = alarma.FechaHora; al.FechaHora2 = alarma.FechaHora2; al.FechaModif = DateTime.Now; al.IntervaloEnvio = alarma.IntervaloEnvio; al.NombreAlarma = alarma.NombreAlarma; al.Temperatura = alarma.Temperatura; al.Temperatura2 = alarma.Temperatura2; al.Tiempo = alarma.Tiempo; al.Tiempo2 = alarma.Tiempo2; al.TiempoEnvio = alarma.TiempoEnvio; al.UsuaModif = userName; al.Velocidad = alarma.Velocidad; al.Velocidad2 = alarma.Velocidad2; } db.SaveChanges(); transation.Commit(); //} //catch (DbEntityValidationException ex) //{ // foreach (DbEntityValidationResult item in ex.EntityValidationErrors) // { // // Get entry // DbEntityEntry entry = item.Entry; // string entityTypeName = entry.Entity.GetType().Name; // // Display or log error messages // foreach (DbValidationError subItem in item.ValidationErrors) // { // string message = string.Format("Error '{0}' occurred in {1} at {2}", // subItem.ErrorMessage, entityTypeName, subItem.PropertyName); // Console.WriteLine(message); // } // } } catch (Exception) { transation.Rollback(); throw; } } }
public void AddAlarma(Alarma alarma, List <string> nroPlacas, List <int> codGeos, int codGeoInicio, List <string> ciDest, string userName) { using (var transation = db.Database.BeginTransaction()) { try { db.Alarma.Add(alarma); db.SaveChanges(); foreach (var nroPlaca in nroPlacas) { AlarmaVehiculo alarmaVehiculo = new AlarmaVehiculo { CodAlarma = alarma.CodAlarma, NroPlaca = nroPlaca, EstadoReq = true, Cantidad = 0, UsuaReg = userName, FechaReg = DateTime.Now }; db.AlarmaVehiculo.Add(alarmaVehiculo); } foreach (var codGeo in codGeos) { AlarmaGeocerca alarmaGeo = new AlarmaGeocerca { CodAlarma = alarma.CodAlarma, CodigoGEO = codGeo, Inicio = false, UsuaReg = userName, FechaReg = DateTime.Now }; if (codGeoInicio > 0) { if (codGeo == codGeoInicio) { alarmaGeo.Inicio = true; } } db.AlarmaGeocerca.Add(alarmaGeo); } foreach (var ci in ciDest) { AlarmaDestinatarios alarmaDest = new AlarmaDestinatarios { CodAlarma = alarma.CodAlarma, CI = ci, UsuaReg = userName, FechaReg = DateTime.Now }; db.AlarmaDestinatarios.Add(alarmaDest); } db.SaveChanges(); transation.Commit(); } catch (Exception) { transation.Rollback(); } } }