Ejemplo n.º 1
0
        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 }));
        }
Ejemplo n.º 2
0
        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));
        }