public ActionResult Copy(ExtraCopyViewModel viewModel) { int id = viewModel.Extra.ExtraId; viewModel.Extra = db.Extras.Include(s => s.CategoriaExtra) .SingleOrDefault(s => s.ExtraId == id); if (viewModel.Extra != null) { viewModel.Extra.SubTemaId = viewModel.SubTemaCopiarId; viewModel.Extra.Orden = db.Extras.Count(extra => extra.CategoriaExtraId == viewModel.Extra.CategoriaExtraId && extra.SubTemaId == viewModel.Extra.SubTemaId) + 1; db.Extras.Add(viewModel.Extra); db.SaveChanges(); //Meter en nuevos clientes var clientes = db.ClienteSubTemas.Where(cb => cb.SubTemaId == viewModel.SubTemaCopiarId); foreach (var clienteBloque in clientes) { db.ClienteExtras.Add(new ClienteExtra() { ExtraId = viewModel.Extra.ExtraId, ClienteId = clienteBloque.ClienteId }); } db.SaveChanges(); if (!string.IsNullOrEmpty(viewModel.Extra.Audio)) { string oldPathAndName = "~/media/upload/extras_audios/" + viewModel.Extra.Audio; string newPathAndName = "~/media/upload/extras_audios/" + viewModel.Extra.ExtraId + ".mp3"; System.IO.File.Copy(Server.MapPath(oldPathAndName), Server.MapPath(newPathAndName)); viewModel.Extra.Audio = viewModel.Extra.ExtraId + ".jpg"; db.Entry(viewModel.Extra).State = EntityState.Modified; db.SaveChanges(); } if (!string.IsNullOrEmpty(viewModel.Extra.Foto)) { string oldPathAndName = "~/media/upload/extras_imagenes/" + viewModel.Extra.Foto; string newPathAndName = "~/media/upload/extras_imagenes/" + viewModel.Extra.ExtraId + ".mp3"; System.IO.File.Copy(Server.MapPath(oldPathAndName), Server.MapPath(newPathAndName)); viewModel.Extra.Foto = viewModel.Extra.ExtraId + ".jpg"; db.Entry(viewModel.Extra).State = EntityState.Modified; db.SaveChanges(); } return(RedirectToAction("Index", "Bloques", new { id = viewModel.Extra.SubTemaId, pestanya = (int)PestanyasBloques.Extras })); } viewModel.InicializarDesplegables(); return(View(viewModel)); }
// GET: Admin/Extras/Copy public ActionResult Copy(int id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var Extra = db.Extras.Include(s => s.CategoriaExtra).SingleOrDefault(s => s.ExtraId == id); if (Extra == null) { return(HttpNotFound()); } ExtraCopyViewModel viewModel = new ExtraCopyViewModel(); viewModel.Extra = Extra; viewModel.InicializarDesplegables(); return(View(viewModel)); }