public ActionResult Detalles(SprintModelo model) { if (ModelState.IsValid) { //se obtiene la informacion del modelo var sprint = new Sprint(); sprint.numero = Int32.Parse(model.numero); sprint.proyecto = model.proyecto; sprint.fechaInicio = DateTime.ParseExact(model.fechaInicio, "dd/MM/yyyy", CultureInfo.InvariantCulture); sprint.fechaFinal = DateTime.ParseExact(model.fechaFinal, "dd/MM/yyyy", CultureInfo.InvariantCulture); baseDatos.Entry(sprint).State = System.Data.Entity.EntityState.Modified; //se eliminan los modulos viejos en caso de haber efectuado cambios var modulosViejos = baseDatos.Sprint_Modulos.Where(m => m.sprint == sprint.numero && m.proyecto == model.proyecto); if (modulosViejos.Count() > 0) { foreach (var modulo in modulosViejos) { baseDatos.Entry(modulo).State = System.Data.Entity.EntityState.Deleted; } } //se agregan las nuevas relaciones de sprint con modulo if (model.modulos != null && model.modulos.Count() > 0) { foreach (var modulo in model.modulos) { var sprint_modulo = new Sprint_Modulos(); sprint_modulo.proyecto = sprint.proyecto; sprint_modulo.sprint = sprint.numero; sprint_modulo.modulo = Int32.Parse(modulo); sprint.Sprint_Modulos.Add(sprint_modulo); baseDatos.Entry(sprint_modulo).State = System.Data.Entity.EntityState.Added; baseDatos.Entry(sprint).State = System.Data.Entity.EntityState.Modified; } } baseDatos.SaveChanges(); this.AddToastMessage("Sprint Modificado", "El sprint " + model.numero + " se ha modificado correctamente.", ToastType.Success); return(RedirectToAction("Detalles", "Sprint", new { proyecto = model.proyecto, sprint = model.numero })); } return(View(model)); }
public async Task <ActionResult> Crear(SprintModelo model) { if (ModelState.IsValid) { //se carga la informacion del sprint del modelo var sprint = new Sprint(); sprint.numero = Int32.Parse(model.numero); sprint.proyecto = model.proyecto; sprint.fechaInicio = DateTime.ParseExact(model.fechaInicio, "MM/dd/yyyy", CultureInfo.InvariantCulture); sprint.fechaFinal = DateTime.ParseExact(model.fechaFinal, "MM/dd/yyyy", CultureInfo.InvariantCulture); if (sprint.fechaInicio > sprint.fechaFinal) { this.AddToastMessage("Error", "La fecha de inicio debe ser antes de la fecha final", ToastType.Warning); return(RedirectToAction("Crear", "Sprint", new { proyecto = model.proyecto })); } //se crea las relaciones de sprint con modulo if (model.modulos != null && model.modulos.Count() > 0) { foreach (var modulo in model.modulos) { var sprint_modulo = new Sprint_Modulos(); sprint_modulo.proyecto = sprint.proyecto; sprint_modulo.sprint = sprint.numero; sprint_modulo.modulo = Int32.Parse(modulo); sprint.Sprint_Modulos.Add(sprint_modulo); } } baseDatos.Sprints.Add(sprint); baseDatos.SaveChanges(); updateSprintPoints(sprint.proyecto, sprint.numero); this.AddToastMessage("Sprint Creado", "El sprint " + model.numero + " se ha creado y asignado correctamente" + " al proyecto " + model.proyecto + ".", ToastType.Success); return(RedirectToAction("Crear", "Sprint", new { proyecto = model.proyecto })); } ViewBag.Proyectos = new SelectList(baseDatos.Proyectos.ToList(), "nombre", "nombre"); ViewBag.modulos = baseDatos.Modulos.Where(m => m.proyecto == model.proyecto).ToList(); return(View(model)); }