public PartialViewResult _VerDetalleEmpresaOfertas(int id)
        {
            //Se obtiene la información de la BD

            int idEmpresa = id;

            //Se obtiene la información de la BD
            LNOferta lnempresaoferta = new LNOferta();
            List<VistaEmpresaOferta> lista = lnempresaoferta.ObtenerOfertasPorIdEmpresa(id);

            return PartialView("_VerDetalleEmpresaOfertas", lista);

            //return PartialView("_VerDetalleEmpresaOfertas");
        }
        private PartialViewResult mensajeUTPOfertaNuevo(string pantalla)
        {
            ViewBag.Pantalla = pantalla;
            TicketEmpresa ticketEmpresa = (TicketEmpresa)Session["TicketEmpresa"];

            //1. Obtener ofertas activas de la empresa.
            LNOferta lnOferta = new LNOferta();

            //Se obtiene el IdEmpresa de la oferta.
            int idEmpresa = lnMensaje.ObtenerIdEmpresaPorIdOferta(IdOferta);

            //Se obtiene las ofertas de la empresa y se selecciona solo una oferta.
            List<VistaEmpresaOferta> listaOfertas = lnOferta.ObtenerOfertasPorIdEmpresa(idEmpresa).Where(m => m.IdOferta == IdOferta).ToList();

            //Se cargan en el ViewBag para ser consumidas desde el html. Se establece el valor del IdOferta.
            ViewBag.IdOfertaMensaje = new SelectList(listaOfertas, "IdOferta", "CargoOfrecido", IdOferta);

            ViewBag.IdOfertaGeneral = IdOferta;

            Mensaje mensaje = new Mensaje();
            mensaje.Pantalla = pantalla;

            VistaEmpresaOferta ofertaSeleccionada = listaOfertas.Where(m => m.IdOferta == IdOferta).FirstOrDefault();
            mensaje.Asunto = ofertaSeleccionada == null ? "" : ofertaSeleccionada.CargoOfrecido;
            mensaje.ParaUsuario = ofertaSeleccionada.UsuarioPropietarioEmpresa;
            mensaje.ParaUsuarioNombre = ofertaSeleccionada.UsuarioPropietarioEmpresa;
            mensaje.ParaUsuarioCorreoElectronico = ofertaSeleccionada.UsuarioPropietarioEmpresaCorreo;
            mensaje.IdOfertaMensaje = IdOferta; //Se establece el IdOferta enviado como parámetro

            //Hay que llenar el combo de destinatarios con los postulantes y el usuario empresa de la oferta.

            return PartialView("_MensajesNuevo", mensaje);
        }
        private PartialViewResult obtenerVistaMensajeResponder(string pantalla, int idMensaje)
        {
            Mensaje mensajeBase = lnMensaje.ObtenerPorIdMensaje(idMensaje); //Este es el mensaje original.
            Mensaje mensajeRespuesta = new Mensaje();
            mensajeRespuesta.Asunto = "Re: " + mensajeBase.Asunto;
            mensajeRespuesta.IdMensajePadre = mensajeBase.IdMensaje;
            mensajeRespuesta.ParaUsuario = mensajeBase.DeUsuario;
            mensajeRespuesta.ParaUsuarioCorreoElectronico = mensajeBase.DeUsuarioCorreoElectronico;
            mensajeRespuesta.IdOferta = mensajeBase.IdOferta;
            mensajeRespuesta.Pantalla = pantalla;

            if (pantalla == Constantes.MENSAJES_EMPRESA_INDEX)
            {
                TicketEmpresa ticketEmpresa = (TicketEmpresa)Session["TicketEmpresa"];
                mensajeRespuesta.DeUsuario = ticketEmpresa.Usuario;
                mensajeRespuesta.DeUsuarioCorreoElectronico = ticketEmpresa.CorreoElectronico;

                //1. Obtener ofertas activas de la empresa.
                LNOferta lnOferta = new LNOferta();

                //Se obtienen las ofertas activas
                List<VistaEmpresaOferta> listaOfertas = lnOferta.ObtenerOfertasPorIdEmpresa(ticketEmpresa.IdEmpresa).Where(m => m.NombreEstado == "OFERAC").ToList();

                //Se cargan en el ViewBag para ser consumidas desde el html y se establece el IdOferta.
                ViewBag.IdOferta = new SelectList(listaOfertas, "IdOferta", "CargoOfrecido", mensajeBase.IdOferta);

            }
            else
            if (pantalla == Constantes.MENSAJES_ALUMNO_INDEX)
            {
                TicketAlumno ticketAlumno = (TicketAlumno)Session["TicketAlumno"];
                mensajeRespuesta.DeUsuario = ticketAlumno.Usuario;
                mensajeRespuesta.DeUsuarioCorreoElectronico = ticketAlumno.CorreoElectronico;

                //Hallar las ofertas a las que el alumno a postulado.
                List<VistaAlumnoOferta> listaOfertas = lnMensaje.ObtenerOfertasPorIdAlumno(ticketAlumno.IdAlumno);

                //Se cargan en el ViewBag para ser consumidas desde el html.
                ViewBag.IdOferta = new SelectList(listaOfertas, "IdOferta", "CargoOfrecido", mensajeBase.IdOferta);
            }

            ViewBag.Pantalla = pantalla;

            return PartialView("_MensajesResponder", mensajeRespuesta);
        }
        /// <summary>
        /// Método interno para completar los datos de la pantalla Oferta en Empresa.
        /// </summary>
        private PartialViewResult mensajeEmpresaOfertaNuevo(string pantalla)
        {
            ViewBag.Pantalla = pantalla;
            TicketEmpresa ticketEmpresa = (TicketEmpresa)Session["TicketEmpresa"];

            //1. Obtener ofertas activas de la empresa.
            LNOferta lnOferta = new LNOferta();

            //Se obtienen las ofertas activas
            List<VistaEmpresaOferta> listaOfertas = lnOferta.ObtenerOfertasPorIdEmpresa(ticketEmpresa.IdEmpresa).Where(m => m.NombreEstado == "OFERAC").ToList();

            VistaEmpresaOferta ofertaSeleccionada = listaOfertas.Where(m => m.IdOferta == IdOferta).FirstOrDefault();

            //Se cargan en el ViewBag para ser consumidas desde el html. Se establece el valor del IdOferta.
            ViewBag.IdOfertaMensaje = new SelectList(listaOfertas, "IdOferta", "CargoOfrecido");

            ViewBag.IdOfertaGeneral = IdOferta;

            Mensaje mensaje = new Mensaje();
            mensaje.Pantalla = pantalla;
            mensaje.Asunto = ofertaSeleccionada.CargoOfrecido;
            //mensaje.ParaUsuario = ofertaSeleccionada.UsuarioPropietarioEmpresa;
            //mensaje.ParaUsuarioCorreoElectronico = ofertaSeleccionada.UsuarioPropietarioEmpresaCorreo;
            //mensaje.Oferta.CargoOfrecido = ofertaSeleccionada.CargoOfrecido;

            return PartialView("_MensajesNuevo", mensaje);
        }
        /// <summary>
        /// Método interno para completar los datos de la pantalla Mi Cuenta en Empresa.
        /// </summary>
        private PartialViewResult mensajeEmpresaIndexNuevo(string pantalla)
        {
            ViewBag.Pantalla = pantalla;
            TicketEmpresa ticketEmpresa = (TicketEmpresa)Session["TicketEmpresa"];

            //1. Obtener ofertas activas de la empresa.
            LNOferta lnOferta = new LNOferta();

            //Se obtienen las ofertas activas
            List<VistaEmpresaOferta> listaOfertas = lnOferta.ObtenerOfertasPorIdEmpresa(ticketEmpresa.IdEmpresa).Where(m => m.NombreEstado == "OFERAC").ToList();

            //Se cargan en el ViewBag para ser consumidas desde el html.
            ViewBag.IdOfertaMensaje = new SelectList(listaOfertas, "IdOferta", "CargoOfrecido");

            Mensaje mensaje = new Mensaje();
            mensaje.Pantalla = pantalla;

            return PartialView("_MensajesNuevo", mensaje);
        }
        private PartialViewResult mensajeEmpresaHuntingNuevo(string pantalla, string listaIdAlumnos)
        {
            ViewBag.Pantalla = pantalla;
            TicketEmpresa ticketEmpresa = (TicketEmpresa)Session["TicketEmpresa"];

            LNOferta lnOferta = new LNOferta();
            List<VistaEmpresaOferta> listaOfertas = lnOferta.ObtenerOfertasPorIdEmpresa(ticketEmpresa.IdEmpresa).Where(m => m.NombreEstado == "OFERAC").ToList(); //Activas.
            ViewBag.IdOfertaMensaje = new SelectList(listaOfertas, "IdOferta", "CargoOfrecido");

            Mensaje mensaje = new Mensaje();
            mensaje.DeUsuario = ticketEmpresa.Usuario;
            mensaje.DeUsuarioCorreoElectronico = ticketEmpresa.CorreoElectronico;
            mensaje.ParaUsuario = lnMensaje.ObtenerListaAlumnosHunting(listaIdAlumnos); //Se guarda la lista de ids en esta propiedad.
            mensaje.ParaUsuarioNombre = lnMensaje.ObtenerListaAlumnosHunting(listaIdAlumnos); //Se guarda la lista de ids en esta propiedad.
            mensaje.ParaUsuarioCorreoElectronico = listaIdAlumnos;
            mensaje.Pantalla = pantalla;
            mensaje.CreadoPor = ticketEmpresa.Usuario;

            return PartialView("_MensajesNuevo", mensaje);
        }
        public PartialViewResult _MensajesResponder(string pantalla, int idMensaje)
        {
            Mensaje mensajeBase = lnMensaje.ObtenerPorIdMensaje(idMensaje); //Este es el mensaje original.
            Mensaje mensajeRespuesta = new Mensaje();
            mensajeRespuesta.Asunto = "Re: " + mensajeBase.Asunto;
            mensajeRespuesta.IdMensajePadre = mensajeBase.IdMensaje;
            mensajeRespuesta.ParaUsuario = mensajeBase.DeUsuario;
            mensajeRespuesta.ParaUsuarioCorreoElectronico = mensajeBase.DeUsuarioCorreoElectronico;
            mensajeRespuesta.IdOfertaMensaje = mensajeBase.IdOferta;
            mensajeRespuesta.IdEvento = mensajeBase.IdEvento;
            mensajeRespuesta.Pantalla = pantalla;
            mensajeRespuesta.IdEmpresa = mensajeBase.IdEmpresa;

            if (pantalla == Constantes.MENSAJES_EMPRESA_INDEX || pantalla == Constantes.MENSAJES_EMPRESA_OFERTA)
            {
                TicketEmpresa ticketEmpresa = (TicketEmpresa)Session["TicketEmpresa"];
                mensajeRespuesta.DeUsuario = ticketEmpresa.Usuario;
                mensajeRespuesta.DeUsuarioCorreoElectronico = ticketEmpresa.CorreoElectronico;
                mensajeRespuesta.CreadoPor = ticketEmpresa.Usuario;

                //1. Obtener ofertas activas de la empresa.
                LNOferta lnOferta = new LNOferta();

                //Se obtienen las ofertas activas
                List<VistaEmpresaOferta> listaOfertas = lnOferta.ObtenerOfertasPorIdEmpresa(ticketEmpresa.IdEmpresa).Where(m => m.NombreEstado == "OFERAC").ToList();

                //Se cargan en el ViewBag para ser consumidas desde el html y se establece el IdOferta.
                ViewBag.IdOfertaMensaje = new SelectList(listaOfertas, "IdOferta", "CargoOfrecido", mensajeBase.IdOferta);

            }
            else
            if (pantalla == Constantes.MENSAJES_ALUMNO_INDEX || pantalla == Constantes.MENSAJES_ALUMNO_OFERTA)
            {
                TicketAlumno ticketAlumno = (TicketAlumno)Session["TicketAlumno"];
                mensajeRespuesta.DeUsuario = ticketAlumno.Usuario;
                mensajeRespuesta.DeUsuarioCorreoElectronico = ticketAlumno.CorreoElectronico;
                mensajeRespuesta.CreadoPor = ticketAlumno.Usuario;

                //Hallar las ofertas a las que el alumno a postulado.
                List<VistaAlumnoOferta> listaOfertas = lnMensaje.ObtenerOfertasPorIdAlumno(ticketAlumno.IdAlumno);

                //Se cargan en el ViewBag para ser consumidas desde el html.
                ViewBag.IdOfertaMensaje = new SelectList(listaOfertas, "IdOferta", "CargoOfrecido", mensajeBase.IdOferta);
            }
            else
            if (pantalla == Constantes.MENSAJES_UTP_INDEX || pantalla == Constantes.MENSAJES_UTP_ALUMNO || pantalla == Constantes.MENSAJES_UTP_OFERTA
                || pantalla == Constantes.MENSAJES_UTP_EMPRESA || pantalla == Constantes.MENSAJES_UTP_EVENTO)
            {
                TicketUTP ticketUtp = (TicketUTP)Session["TicketUtp"];
                mensajeRespuesta.DeUsuario = ticketUtp.Usuario;
                mensajeRespuesta.DeUsuarioCorreoElectronico = ticketUtp.CorreoElectronico;
                mensajeRespuesta.CreadoPor = ticketUtp.Usuario;
            }
            else
             if (pantalla == Constantes.MENSAJES_EMPRESA_EVENTO)
            {
                LNEvento lnEvento = new LNEvento();
                DataTable dtEvento = lnEvento.EVENTO_OBTENERPORID(mensajeBase.IdEvento);
                mensajeRespuesta.Evento.NombreEvento = Convert.ToString(dtEvento.Rows[0]["NombreEvento"]);

                TicketEmpresa ticketEmpresa = (TicketEmpresa)Session["TicketEmpresa"];
                mensajeRespuesta.DeUsuario = ticketEmpresa.Usuario;
                mensajeRespuesta.DeUsuarioCorreoElectronico = ticketEmpresa.CorreoElectronico;
                mensajeRespuesta.CreadoPor = ticketEmpresa.Usuario;
            }
            else
            if (pantalla == Constantes.MENSAJES_ALUMNO_EVENTO)
            {
                LNEvento lnEvento = new LNEvento();
                DataTable dtEvento = lnEvento.EVENTO_OBTENERPORID(mensajeBase.IdEvento);
                mensajeRespuesta.Evento.NombreEvento = Convert.ToString(dtEvento.Rows[0]["NombreEvento"]);

                TicketAlumno ticketAlumno = (TicketAlumno)Session["TicketAlumno"];
                mensajeRespuesta.DeUsuario = ticketAlumno.Usuario;
                mensajeRespuesta.DeUsuarioCorreoElectronico = ticketAlumno.CorreoElectronico;
                mensajeRespuesta.CreadoPor = ticketAlumno.Usuario;
            }
            else
            if (pantalla == Constantes.MENSAJES_EMPRESA_HUNTING)
            {
                TicketEmpresa ticketEmpresa = (TicketEmpresa)Session["TicketEmpresa"];
                mensajeRespuesta.DeUsuario = ticketEmpresa.Usuario;
                mensajeRespuesta.DeUsuarioCorreoElectronico = ticketEmpresa.CorreoElectronico;
                mensajeRespuesta.CreadoPor = ticketEmpresa.Usuario;
            }

            ViewBag.Pantalla = pantalla;

            return PartialView("_MensajesResponder", mensajeRespuesta);
        }
        /// <summary>
        /// Se revisa si existen ofertas en estado OFERCV
        /// </summary>
        public List<VistaEmpresaOferta> obtenerOfertasEnEstadoOFERCV()
        {
            TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];
            LNOferta lnOferta = new LNOferta();

            //Se buscan la ofertas de la empresa que se encuentran en estado OFERCV (Fin de recepción de CVs)
            List<VistaEmpresaOferta> lista = lnOferta.ObtenerOfertasPorIdEmpresa(ticket.IdEmpresa).Where(p => (p.NombreEstado == Constantes.OFERTA_ESTADO_FINRECEPCIONCVS || p.NombreEstado == Constantes.OFERTA_ESTADO_ACTIVA) && p.FechaFinOferta < DateTime.Now).ToList();

            return lista;

            ////Si se encuentran filas => se obienen los cargos y se llena una variable temporal.
            //if (lista.Count() > 0)
            //{
            //    StringBuilder ofertasEncontradas = new StringBuilder();
            //    ofertasEncontradas.Append("Antes de continuar debe cerrar las siguientes ofertas: ");
            //    ofertasEncontradas.Append(Environment.NewLine);

            //    foreach (var oferta in lista)
            //    {
            //        ofertasEncontradas.Append(oferta.CargoOfrecido);
            //        ofertasEncontradas.Append(Environment.NewLine);
            //    }

            //    //En el vista Publicacion.html se lee este TempData y se muestra el mensaje al usuario.
            //    TempData["msjOfertasEnOFERCV"] = ofertasEncontradas.ToString();

            //    //Se redirecciona a la lista de ofertas.
            //    return RedirectToAction("Publicacion");
            //}
        }