public ActionResult CrearCapacitacion(int id_academia, int[] id_cursos, string nombre_capacitacion) { if (ModelState.IsValid) { using (DbContextTransaction tran = db.Database.BeginTransaction()) { try { Capacitacion capacitacion = new Capacitacion(); capacitacion.nombre = nombre_capacitacion; capacitacion.activo = true; capacitacion.eliminado = false; capacitacion.id_academia = id_academia; capacitacion.fecha_creacion = DateTime.Now; UsuarioTO usuario = Cache.DiccionarioUsuariosLogueados[User.Identity.Name]; capacitacion.id_usuario_creacion = usuario.usuario.id_usuario; db.Capacitacion.Add(capacitacion); db.SaveChanges(); if (id_cursos != null) { foreach (var curso in id_cursos) { Capacitacion_Curso capacitacion_curso = new Capacitacion_Curso(); capacitacion_curso.id_curso = curso; capacitacion_curso.id_capacitacion = capacitacion.id_capacitacion; capacitacion_curso.activo = true; capacitacion_curso.eliminado = false; capacitacion_curso.fecha_creacion = DateTime.Now; capacitacion_curso.id_usuario_creacion = usuario.usuario.id_usuario; db.Capacitacion_Curso.Add(capacitacion_curso); db.SaveChanges(); } } tran.Commit(); } catch { tran.Rollback(); } } } return(RedirectToAction("Index", new { id = id_academia })); }
//id_edi_cap_cur = id_capacitacion_curso que se modifica t_edi_nom_cur = nombre_curso id_ed_cur=id_curso public ActionResult EditarCurso(int id_academia, int?id_capacitacion, int?id_edi_cap_cur, string t_edi_nom_cur, int?id_ed_cur) { if (ModelState.IsValid) { UsuarioTO usuario = Cache.DiccionarioUsuariosLogueados[User.Identity.Name]; //Si es nulo significa el curso no esta asignado a ninguna categoria if (id_edi_cap_cur == null) { using (DbContextTransaction tran = db.Database.BeginTransaction()) { try { Curso curso = db.Curso.Find(id_ed_cur); curso.nombre = t_edi_nom_cur; curso.fecha_modificacion = DateTime.Now; curso.id_usuario_modificacion = usuario.usuario.id_usuario; db.Entry(curso).State = EntityState.Modified; db.SaveChanges(); //Si el id_capacitacion no es nula, quiere decir que se asignara el curso a una capacitacion if (id_capacitacion != null) { Capacitacion_Curso capacitacion_curso = new Capacitacion_Curso(); capacitacion_curso.id_curso = curso.id_curso; capacitacion_curso.id_capacitacion = (int)id_capacitacion; capacitacion_curso.fecha_creacion = DateTime.Now; capacitacion_curso.id_usuario_creacion = usuario.usuario.id_usuario; capacitacion_curso.activo = true; capacitacion_curso.eliminado = false; db.Capacitacion_Curso.Add(capacitacion_curso); db.SaveChanges(); } tran.Commit(); } catch { tran.Rollback(); ModelState.AddModelError("", "Error. Los cambios no se han completado."); } } } else //Se esta modificando un curso asignado a una categoria { using (DbContextTransaction tran = db.Database.BeginTransaction()) { try { Capacitacion_Curso capacitacion_curso = db.Capacitacion_Curso.Find(id_edi_cap_cur); Curso curso = db.Curso.Find(capacitacion_curso.id_curso); curso.nombre = t_edi_nom_cur; curso.fecha_modificacion = DateTime.Now; curso.id_usuario_modificacion = usuario.usuario.id_usuario; db.Entry(curso).State = EntityState.Modified; db.SaveChanges(); if (id_capacitacion != null) { //Se elimi capacitacion_curso.id_capacitacion = (int)id_capacitacion; capacitacion_curso.fecha_modificacion = DateTime.Now; capacitacion_curso.id_usuario_modificacion = usuario.usuario.id_usuario; db.Entry(capacitacion_curso).State = EntityState.Modified; db.SaveChanges(); } else //Si la capacitacion es nula quiere decir que el curso dejara de ser parte de la misma { //Se elimina el curso de la categoria capacitacion_curso.fecha_eliminacion = DateTime.Now; capacitacion_curso.id_usuario_eliminacion = usuario.usuario.id_usuario; capacitacion_curso.activo = false; capacitacion_curso.eliminado = true; db.Entry(capacitacion_curso).State = EntityState.Modified; db.SaveChanges(); } tran.Commit(); } catch { tran.Rollback(); ModelState.AddModelError("", "Error. Los cambios no se han completado."); } } } } return(RedirectToAction("Index", new { id = id_academia })); }