public ActionResult Edit(Publicacion p, FormCollection collection) { int idPublicacion = p.IdPublicacion; //Precios IList<Precio> listaPrecios = p.Precios; var repoPrecios = new PrecioRepositorio(); foreach (var precio in listaPrecios) { precio.IdPublicacion = idPublicacion; bool update = repoPrecios.Update(precio); } //fin Precios //Servicios var misServicios = new List<Servicio>(p.Servicios); var repoPubSer = new PublicacionServicioRepositorio(); var repoSer = new ServicioRepositorio(); var listaPubServ = repoPubSer.GetAll(); bool flag = false; bool flag2 = false; foreach (var misServicio in misServicios) { if (misServicio.IdServicio != 0) { foreach (var publicacionServicio in listaPubServ) { if(publicacionServicio.IdPublicacion==idPublicacion) { if(publicacionServicio.IdServicio==misServicio.IdServicio) { flag = true; break; } } } if(!flag) { var pB = new PublicacionServicio { IdPublicacion = idPublicacion, IdServicio = misServicio.IdServicio }; repoPubSer.Save(pB); } flag = false; }else { foreach (var publicacionServicio in listaPubServ) { if (publicacionServicio.IdPublicacion == idPublicacion) { if (publicacionServicio.IdServicio==misServicio.FkIdServicio) { flag2 = true; misServicio.IdServicio = publicacionServicio.IdServicio; break; } } } if (flag2) { var pB = new PublicacionServicio { IdPublicacion = idPublicacion, IdServicio = misServicio.IdServicio }; repoPubSer.Delete(pB); } flag2 = false; } } Idioma i = p.Idioma[0]; var repoIdioma = new IdiomaRepositorio(); i.IdPublicacion = p.IdPublicacion; repoIdioma.Update(i); var repoPubli = new PublicacionRepositorio(); var b = repoPubli.Update(p); Session["IdPublicacion"] = idPublicacion; return RedirectToAction("EditForPublicacion","Imagene", new {idPubli = idPublicacion}); }