public ActionResult Details(PersonaViewModel viewModel, string opcion) { ViewBag.idProgramaFormacion = new SelectList(db.ProgramaDeFormacion, "idPrograma", "nombre"); if ("Agregar".Equals(opcion)) { InstructorProgramaDeFormacion registro = db.InstructorProgramaDeFormacion.Find(viewModel.idPersona, viewModel.idProgramaFormacion); if (registro != null) { ModelState.AddModelError("idProgramaFormacion", "Este programa ya esta registrado."); return(View(viewModel)); } InstructorProgramaDeFormacion nuevoPrograma = new InstructorProgramaDeFormacion(); nuevoPrograma.idPersonaInstructor = viewModel.idPersona; nuevoPrograma.idPrograma = viewModel.idProgramaFormacion; nuevoPrograma.estado = true; db.InstructorProgramaDeFormacion.Add(nuevoPrograma); db.SaveChanges(); } if ("Guardar".Equals(opcion)) { foreach (var item in viewModel.programasDelInstructor) { InstructorProgramaDeFormacion registro = db.InstructorProgramaDeFormacion.Find(viewModel.idPersona, item.idPrograma); registro.estado = item.estado; db.SaveChanges(); } } if (opcion.Contains("Eliminar")) { string[] datos = opcion.Split(new char[] { '/' }); InstructorProgramaDeFormacion registro = db.InstructorProgramaDeFormacion.Find(viewModel.idPersona, Convert.ToInt32(datos[1])); db.InstructorProgramaDeFormacion.Remove(registro); db.SaveChanges(); } return(RedirectToAction("Details", new { id = viewModel.idPersona })); }
public ActionResult Create(PersonaViewModel viewModel) { ViewBag.idDocumento = new SelectList(db.TipoDocumento, "idDocumento", "nombreDocumento", viewModel.idDocumento); ViewBag.idProgramaFormacion = new SelectList(db.ProgramaDeFormacion, "idPrograma", "nombre", viewModel.idProgramaFormacion); if (ModelState.IsValid) { Personas existe = db.Personas.FirstOrDefault(x => x.numeroDocumento == viewModel.numeroDocumento); if (existe != null) { ModelState.AddModelError("", "El número de documento ya existe."); return(View(viewModel)); } if (viewModel.EsInstructor) { if (viewModel.cargo == null) { ModelState.AddModelError("cargo", "El cargo es obligatorio."); return(View(viewModel)); } if (viewModel.idProgramaFormacion == 0) { ModelState.AddModelError("idProgramaFormacion", "El programa de formación es obligatorio."); return(View(viewModel)); } } Usuario existeCorreo = db.Usuario.FirstOrDefault(x => x.correo == viewModel.correo); if (existeCorreo != null) { ModelState.AddModelError("correo", "El correo ya existe."); return(View(viewModel)); } Personas persona = new Personas(); persona.apellidos = viewModel.apellidos; persona.celular = viewModel.celular; persona.direccion = viewModel.direccion; persona.idDocumento = viewModel.idDocumento; persona.nombres = viewModel.nombres; persona.numeroDocumento = viewModel.numeroDocumento; persona.telefono = viewModel.telefono; db.Personas.Add(persona); db.SaveChanges(); Personas registro = db.Personas.FirstOrDefault(x => x.numeroDocumento == persona.numeroDocumento); if (registro != null) { Usuario usuario = new Usuario(); usuario.idPersona = registro.idPersona; usuario.correo = viewModel.correo; usuario.estado = true; usuario.fechaIngreso = DateTime.Now; usuario.contraseña = "123"; db.Usuario.Add(usuario); db.SaveChanges(); RolDePersona rol = new RolDePersona(); rol.idPersona = registro.idPersona; rol.idRol = 1; rol.estado = true; if (viewModel.EsInstructor) { Instructor instructor = new Instructor(); instructor.idPersona = registro.idPersona; instructor.cargo = viewModel.cargo; db.Instructor.Add(instructor); db.SaveChanges(); InstructorProgramaDeFormacion programa = new InstructorProgramaDeFormacion(); programa.idPersonaInstructor = instructor.idPersona; programa.idPrograma = viewModel.idProgramaFormacion; programa.estado = true; db.InstructorProgramaDeFormacion.Add(programa); db.SaveChanges(); rol.idRol = 2; } db.RolDePersona.Add(rol); db.SaveChanges(); return(RedirectToAction("Index")); } } return(View(viewModel)); }