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));
        }