public ActionResult Borrar(ModulosModificarModel model) { if (ModelState.IsValid) { int model_numero = Int32.Parse(model.numero); var modulosViejos = baseDatos.Sprint_Modulos.Where(m => m.modulo == model_numero && m.proyecto == model.proyecto).ToList(); if (modulosViejos.Count() > 0) { foreach (var mod in modulosViejos) { baseDatos.Entry(mod).State = System.Data.Entity.EntityState.Deleted; } } var requerimientosViejos = baseDatos.Requerimientos.Where(m => m.modulo == model_numero && m.proyecto == model.proyecto).ToList(); if (requerimientosViejos.Count() > 0) { foreach (var req in requerimientosViejos) { req.modulo = null; baseDatos.Entry(req).State = System.Data.Entity.EntityState.Modified; } } var modulo = baseDatos.Modulos.Find(model.proyecto, model_numero); baseDatos.Entry(modulo).State = System.Data.Entity.EntityState.Deleted; baseDatos.SaveChanges(); this.AddToastMessage("Módulo Eliminado", "El módulo " + model.numero + " se ha eliminado correctamente.", ToastType.Success); return(RedirectToAction("Informacion", "Proyectos", new { id = model.proyecto })); } return(View(model)); }
// GET: Modulos/Detalles public ActionResult Detalles(string proyecto, string numero) { if (!revisarPermisos("Consultar Detalles de Módulos")) { //Despliega mensaje en caso de no poder crear un proyecto this.AddToastMessage("Acceso Denegado", "No tienes permiso para ver detalles de módulos!", ToastType.Warning); return(RedirectToAction("Index", "Home")); } if (String.IsNullOrEmpty(proyecto) || String.IsNullOrEmpty(numero)) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var modulo = new Modulo(); modulo.proyecto = proyecto; modulo.numero = Int32.Parse(numero); var listaDeModulos = baseDatos.Modulos.Where(m => m.numero == modulo.numero && m.proyecto == modulo.proyecto); if (listaDeModulos.Count() > 0) { var modulo1 = listaDeModulos.First(); var model = new ModulosModificarModel(); model.numero = numero; model.nombre = modulo1.nombre; model.proyecto = proyecto; var requerimientos = baseDatos.Requerimientos.Where(m => m.proyecto == proyecto && m.categoria == "Actual").ToList(); ViewBag.listarequerimientos = new List <ModulosModel.reqInfo>(); foreach (var req in requerimientos) { var req2 = new ModulosModel.reqInfo(); req2.id = req.id.ToString(); req2.nombre = req.nombre; ViewBag.listarequerimientos.Add(req2); } var reqEnProyecto = baseDatos.Requerimientos.Where(m => m.proyecto == proyecto && m.modulo == modulo.numero && m.categoria == "Actual").ToList(); model.requerimientos = new List <string>(); foreach (var req in reqEnProyecto) { model.requerimientos.Add(req.id.ToString()); } ViewBag.modificar = revisarPermisos("Modificar Módulos"); ViewBag.eliminar = revisarPermisos("Eliminar Módulos"); return(View(model)); } else { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } }
public ActionResult Detalles(ModulosModificarModel model) { if (ModelState.IsValid) { var modulo = baseDatos.Modulos.Find(model.proyecto, Int32.Parse(model.numero)); modulo.nombre = model.nombre; baseDatos.Entry(modulo).State = System.Data.Entity.EntityState.Modified; var reqViejos = baseDatos.Requerimientos.Where(m => m.proyecto == modulo.proyecto && m.modulo == modulo.numero && (m.categoria == "Actual" || m.categoria == "En revisión")).ToList(); if (reqViejos.Count() > 0) { foreach (var req in reqViejos) { req.modulo = null; baseDatos.Entry(req).State = System.Data.Entity.EntityState.Modified; } } if (model.requerimientos != null && model.requerimientos.Count() > 0) { foreach (var req in model.requerimientos) { var requerimiento = baseDatos.Requerimientos.Find(Int32.Parse(req)); requerimiento.modulo = modulo.numero; baseDatos.Entry(requerimiento).State = System.Data.Entity.EntityState.Modified; var solicitudesDeCambio = baseDatos.Solicitud_Cambios.Where(m => m.req1 == requerimiento.id).ToList(); if (solicitudesDeCambio != null && solicitudesDeCambio.Count() > 0) { foreach (var solicitud in solicitudesDeCambio) { var requerimiento2 = baseDatos.Requerimientos.Find(solicitud.req2); requerimiento2.modulo = modulo.numero; baseDatos.Entry(requerimiento2).State = System.Data.Entity.EntityState.Modified; } } } } if (modulo.Sprint_Modulos.Any()) { foreach (var sprint_modulo in modulo.Sprint_Modulos.ToList()) { updateSprintPoints(sprint_modulo.proyecto, sprint_modulo.sprint); } } baseDatos.SaveChanges(); this.AddToastMessage("Módulo Modificado", "El módulo " + model.nombre + " se ha modificado correctamente.", ToastType.Success); return(RedirectToAction("Detalles", "Modulos", new { proyecto = model.proyecto, numero = model.numero })); } return(View(model)); }