public JsonResult ObtenerDestinatariosUTPOferta(int idOferta)
        {
            LNOferta lnOferta = new LNOferta();

            List<OfertaPostulante> postulantes = new List<OfertaPostulante>();
            postulantes = lnOferta.ObtenerPostulantesPorIdOferta(idOferta);

            VistaMensajeUsuarioEmpresaOferta oferta = lnMensaje.ObtenerUsuarioEmpresaOfertaPorId(idOferta);

            List<VistaMensajeDestinatario> destinatarios = new List<VistaMensajeDestinatario>();

            //Se agregan a los postulantes:
            foreach (var postulante in postulantes)
            {
                VistaMensajeDestinatario destinatario = new VistaMensajeDestinatario();
                destinatario.Usuario = postulante.Usuario;
                destinatario.Correo = postulante.CorreoElectronico;
                destinatario.TextoAMostrar = postulante.Usuario + " (" + postulante.CorreoElectronico + ")";

                destinatarios.Add(destinatario);
            }

            //Se agrega al usuario de la oferta:
            VistaMensajeDestinatario destinatarioOferta = new VistaMensajeDestinatario();
            destinatarioOferta.Usuario = oferta.UsuarioPropietarioEmpresa;
            destinatarioOferta.Correo = oferta.UsuarioPropietarioEmpresaCorreo;
            destinatarioOferta.TextoAMostrar = oferta.UsuarioPropietarioEmpresa + " (" + oferta.UsuarioPropietarioEmpresaCorreo + ")";

            destinatarios.Add(destinatarioOferta);

            return Json(postulantes, JsonRequestBehavior.AllowGet);
        }
        public JsonResult ObtenerPostulantesPorOferta(int idOferta)
        {
            LNOferta lnOferta = new LNOferta();

            List<OfertaPostulante> postulantes = new List<OfertaPostulante>();
            postulantes = lnOferta.ObtenerPostulantesPorIdOferta(idOferta);

            return Json(postulantes, JsonRequestBehavior.AllowGet);
        }
        public ActionResult VistaOfertaPostulantes(int id, string estado, string columna, string orden, string pantalla = "")
        {
            LNOferta lnOferta = new LNOferta ();

            List<OfertaPostulante> postulantes = new List<OfertaPostulante>();
            if (columna == "Fecha")
            {
                if (orden == "ASC")
                {
                    postulantes = lnOferta.ObtenerPostulantesPorIdOferta(id).OrderBy(m => m.FechaPostulacion).ToList();
                }
                else
                {
                    postulantes = lnOferta.ObtenerPostulantesPorIdOferta(id).OrderByDescending(m => m.FechaPostulacion).ToList();
                }
            }
            if (columna == "Nombre")
            {
                if (orden == "ASC")
                {
                    postulantes = lnOferta.ObtenerPostulantesPorIdOferta(id).OrderBy(m => m.Alumno.Apellidos).ToList();
                }
                else
                {
                    postulantes = lnOferta.ObtenerPostulantesPorIdOferta(id).OrderByDescending(m => m.Alumno.Apellidos).ToList();
                }
            }
            if (columna == "Fase")
            {
                if (orden == "ASC")
                {
                    postulantes = lnOferta.ObtenerPostulantesPorIdOferta(id).OrderBy(m => m.FaseOferta.Peso).ToList();
                }
                else
                {
                    postulantes = lnOferta.ObtenerPostulantesPorIdOferta(id).OrderByDescending(m => m.FaseOferta.Peso).ToList();
                }
            }
            if (columna == "Cumplimiento")
            {
                if (orden == "ASC")
                {
                    postulantes = lnOferta.ObtenerPostulantesPorIdOferta(id).OrderBy(m => m.NivelDeMatch).ToList();
                }
                else
                {
                    postulantes = lnOferta.ObtenerPostulantesPorIdOferta(id).OrderByDescending(m => m.NivelDeMatch).ToList();
                }
            }

               if (postulantes.Count == 0)
            {
                postulantes = lnOferta.ObtenerPostulantesPorIdOferta(id).OrderBy(m => m.FechaPostulacion).ToList();
            }

            //Llenar el combo de Fases:
            List<OfertaFase> listaFasesActivas = lnOferta.Obtener_OfertaFaseActivas(id);

            ViewBag.IdOfertaFase = new SelectList(listaFasesActivas, "IdListaValor", "FaseOferta");
            ViewBag.EstadoOfertaIdListaValor = estado;

            //Se envían datos para mostrar el orden de la grilla. Se valida si es NULL para la primera vez que cargue el bloque.
            ViewBag.Columna = columna == null ? "Fecha" : columna;
            ViewBag.Orden = orden == null ? "ASC" : orden;
            ViewBag.Pantalla = pantalla;

            return PartialView("_VistaOfertaPostulantes", postulantes);
        }