public ActionResult NuevoB(int?poliza, string numcert, string observacion, string detalleCaract, string detalleCobert) { int id_ = -3; using (var transact = db.Database.BeginTransaction()) { try { BienAsegurado b = new BienAsegurado(); b.NumCertificado = int.Parse(numcert); b.Observacion = observacion; b.Estado = true; db.BienesAsegurados.Add(b); id_ = db.SaveChanges(); DetalleBienAsegurado d = new DetalleBienAsegurado(); d.PolizaId = (int)poliza; d.BienAseguradoId = b.Id; db.DetalleBienesAsegurados.Add(d); db.SaveChanges(); var detCa = JsonConvert.DeserializeObject <List <DetalleCaracteristica> >(detalleCaract); var detCo = JsonConvert.DeserializeObject <List <DetalleCobertura> >(detalleCobert); foreach (var item in detCa) { item.BienAseguradoId = b.Id; db.DetalleCaracteristicas.Add(item); } db.SaveChanges(); foreach (var item in detCo) { item.BienAseguradoId = b.Id; db.DetalleCoberturas.Add(item); } db.SaveChanges(); transact.Commit(); } catch (Exception) { transact.Rollback(); } } return(Json(new { id_ }, JsonRequestBehavior.AllowGet)); }
public ActionResult Create([Bind(Include = "Id,NumCertificado,Estado,Observacion")] BienAsegurado bienAsegurado, int?IdPoliza, string detalleCaract, string detalleCobert) { int d = -3; bool band = false; // Convertimos el parametro a objeto C# var det = JsonConvert.DeserializeObject <List <DetalleCaracteristica> >(detalleCaract); var det2 = JsonConvert.DeserializeObject <List <DetalleCobertura> >(detalleCobert); if (ModelState.IsValid) { int Num = bienAsegurado.NumCertificado /*int.Parse(Request["BienesAsegurados.NumCertificado"])*/; List <BienAsegurado> lista1 = db.BienesAsegurados.Where(x => x.NumCertificado == Num).ToList(); if (lista1 != null) { foreach (var item in db.DetalleBienesAsegurados.Where(y => y.PolizaId == (int)IdPoliza)) { if (lista1.Select(a => a.Id).Contains(item.BienAseguradoId)) { band = true; } } } if (band) { ModelState.AddModelError("NumCertificado", "El número de certificado ya existe para esta póliza."); } else { using (var transact = db.Database.BeginTransaction()) { try { db.BienesAsegurados.Add(bienAsegurado); db.SaveChanges(); //Almacenamos el detalle de Bienes Asegurados DetalleBienAsegurado detallebien = new DetalleBienAsegurado(); detallebien.BienAseguradoId = bienAsegurado.Id; detallebien.PolizaId = (int)IdPoliza; db.DetalleBienesAsegurados.Add(detallebien); db.SaveChanges(); // Con el id obtenido guardamos los nuevos detalles. foreach (var item in det) { item.BienAseguradoId = bienAsegurado.Id; db.DetalleCaracteristicas.Add(item); } db.SaveChanges(); foreach (var item2 in det2) { item2.BienAseguradoId = bienAsegurado.Id; db.DetalleCoberturas.Add(item2); } d = db.SaveChanges(); transact.Commit(); } catch (Exception) { transact.Rollback(); } } } } else { d = -2; } return(Json(new { d }, JsonRequestBehavior.AllowGet)); }