Пример #1
0
        [ValidateAntiForgeryToken]                                                 // this action takes the viewModel from the modal
        public PartialViewResult _OfertaEstudioEditar(OfertaEstudio ofertaEstudio) //Este es como el submit
        {
            if (ofertaEstudio.TipoDeEstudioIdListaValor != "TEUNIV")
            {
                ModelState.Remove("Estudio"); //Se quita el campo porque tiene null.
                ofertaEstudio.Estudio = ofertaEstudio.EstudioTexto;
            }
            if (ModelState.IsValid)
            {
                TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

                //Datos DEMO
                //ofertaEstudio.IdOferta = 13;
                //ofertaEstudio.CicloEstudio = "AWE2";
                //ofertaEstudio.Estudio = "Estudios2";
                //ofertaEstudio.TipoDeEstudio.IdListaValor = "ABC2";
                //ofertaEstudio.EstadoDelEstudio.IdListaValor = "AWE2";
                //ofertaEstudio.EstadoOfertaEstudio.IdListaValor = "ABC2";
                ofertaEstudio.ModificadoPor = ticket.Usuario;


                lnOfertaEstudio.Actualizar(ofertaEstudio);

                List <OfertaEstudio> lista = lnOfertaEstudio.ObtenerEstudiosNoUniversitarios(ofertaEstudio.IdOferta, idOfertaEstudiosTodos);  //TODO: Obtener el Id de la oferta.

                ViewBag.IdOferta = ofertaEstudio.IdOferta;
                return(PartialView("_OfertaEstudio", lista));
            }

            return(PartialView("_OfertaEstudioEditar", ofertaEstudio));
        }
Пример #2
0
        public PartialViewResult _OfertaSectorEmpresarialCrear(OfertaSectorEmpresarial ofertaSector)
        {
            if (ModelState.IsValid)
            {
                TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

                //ofertaSector.IdOferta = 13;
                //ofertaSector.SectorEmpresarial.IdListaValor = "ABE";
                //ofertaSector.ExperienciaExcluyente = false;
                //ofertaSector.AniosTrabajados = 3;
                ofertaSector.EstadoOfertaSectorEmpresarial.IdListaValor = "OFSEAC"; //Oferrta sector empresarial activa.
                ofertaSector.CreadoPor = ticket.Usuario;

                LNOfertaSectorEmpresarial lnOfertaSector = new LNOfertaSectorEmpresarial();
                lnOfertaSector.Insertar(ofertaSector);

                List <OfertaSectorEmpresarial> lista = lnSector.ObtenerSectoresEmpresariales(ofertaSector.IdOferta, 0);

                ViewBag.IdOferta = ofertaSector.IdOferta;
                return(PartialView("_OfertaSectorEmpresarial", lista));
            }
            else
            {
                //Código para ubicar los errores en el ModelState.
                var errors = ModelState.Select(x => x.Value.Errors)
                             .Where(y => y.Count > 0)
                             .ToList();

                int a = 0;
            }
            return(PartialView("_OfertaSectorEmpresarialCrear", ofertaSector));
        }
Пример #3
0
        private PartialViewResult mensajeEmpresaEventoNuevo(string pantalla, int idEvento)
        {
            ViewBag.Pantalla = pantalla;
            TicketEmpresa ticketEmpresa = (TicketEmpresa)Session["TicketEmpresa"];

            LNEvento  lnEvento = new LNEvento();
            DataTable dtEvento = lnEvento.EVENTO_OBTENERPORID(idEvento);

            Mensaje mensaje = new Mensaje();

            mensaje.DeUsuario = ticketEmpresa.Usuario;
            mensaje.DeUsuarioCorreoElectronico = ticketEmpresa.CorreoElectronico;
            mensaje.Pantalla            = pantalla;
            mensaje.Asunto              = Convert.ToString(dtEvento.Rows[0]["NombreEvento"]);
            mensaje.Evento.NombreEvento = Convert.ToString(dtEvento.Rows[0]["NombreEvento"]);
            mensaje.IdEvento            = Convert.ToInt32(dtEvento.Rows[0]["IdEvento"]);

            //Se manda el correo al administrador de la UPT. No existe funcionalidad de asignar usuario UTP al evento.
            //DataTable dtUsuarioUTPAdmin = lnMensaje.ObtenerUsuarioAdministradorUTP(); //--se obtiene, la información y se completan los campos.
            //mensaje.ParaUsuario = Convert.ToString(dtUsuarioUTPAdmin.Rows[0]["Usuario"]);
            //mensaje.ParaUsuarioCorreoElectronico = Convert.ToString(dtUsuarioUTPAdmin.Rows[0]["CorreoElectronico"]);

            //04MAR15: Se coloca el usuario y correo del que ha creado el evento.
            mensaje.ParaUsuario                  = Convert.ToString(dtEvento.Rows[0]["CreadoPor"]);
            mensaje.ParaUsuarioNombre            = Convert.ToString(dtEvento.Rows[0]["NombresUsuarioCreacion"]) + " " + Convert.ToString(dtEvento.Rows[0]["ApellidosUsuarioCreacion"]);
            mensaje.ParaUsuarioCorreoElectronico = Convert.ToString(dtEvento.Rows[0]["CorreoUsuarioCreacion"]);

            return(PartialView("_MensajesNuevo", mensaje));
        }
Пример #4
0
        public PartialViewResult _OfertaSectorEmpresarialEditar(OfertaSectorEmpresarial ofertaSector)
        {
            if (ModelState.IsValid)
            {
                TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

                //ofertaSector.IdOferta = 13;
                //ofertaSector.SectorEmpresarial.IdListaValor = "ABE222";
                //ofertaSector.ExperienciaExcluyente = false;
                //ofertaSector.AniosTrabajados = 7;
                //ofertaSector.EstadoOfertaSectorEmpresarial.IdListaValor = "AWE222";
                ofertaSector.ModificadoPor = ticket.Usuario;

                LNOfertaSectorEmpresarial lnOfertaSector = new LNOfertaSectorEmpresarial();
                lnOfertaSector.Actualizar(ofertaSector);

                List <OfertaSectorEmpresarial> lista = lnSector.ObtenerSectoresEmpresariales(ofertaSector.IdOferta, 0);

                ViewBag.IdOferta = ofertaSector.IdOferta;
                return(PartialView("_OfertaSectorEmpresarial", lista));
            }

            //TODO: Validar cuando existe error al grabar.
            return(PartialView("_OfertaSectorEmpresarialEditar", ofertaSector));
        }
Пример #5
0
        public ActionResult Contacto(string pantalla = "")
        {
            Mensaje mensaje = new Mensaje();

            mensaje.Pantalla = pantalla;

            if (pantalla == Constantes.MENSAJES_EMPRESA_CONTACTO)
            {
                TicketEmpresa ticketEmpresa = (TicketEmpresa)Session["TicketEmpresa"];

                mensaje.DeUsuario = ticketEmpresa.Usuario;
                mensaje.DeUsuarioCorreoElectronico = ticketEmpresa.CorreoElectronico;
                mensaje.DeUsuarioNombre            = ticketEmpresa.Nombre;
            }
            else
            if (pantalla == Constantes.MENSAJES_ALUMNO_CONTACTO)
            {
                TicketAlumno ticketAlumno = (TicketAlumno)Session["TicketAlumno"];

                mensaje.DeUsuario = ticketAlumno.Usuario;
                mensaje.DeUsuarioCorreoElectronico = ticketAlumno.CorreoElectronico;
                mensaje.DeUsuarioNombre            = ticketAlumno.Nombre;
            }

            ViewBag.Pantalla = pantalla;

            return(View(mensaje));
        }
Пример #6
0
        public ActionResult InsertarEventoAsistente(string idEvento, string Pantalla)
        {
            string usuario;
            Evento evento = new Evento();


            ViewBag.Pantalla = Pantalla;

            if (Helper.Desencriptar(Pantalla) == "Alumno")
            {
                TicketAlumno ticket = (TicketAlumno)Session["TicketAlumno"];
                usuario = ticket.Usuario;
                LNEvento lnEvento = new LNEvento();
                lnEvento.InsertarEventoAsistente(Convert.ToInt32(Helper.Desencriptar(idEvento)), usuario, usuario);
                evento = lnEvento.EventoPorUsuario(Convert.ToInt32(Helper.Desencriptar(idEvento)), ticket.Usuario);
                ExchangeService service = (ExchangeService)Session["Office365"];
                CreateAppointment(service, evento.FechaEvento, evento.FechaEventoFin, evento.LugarEvento, evento.NombreEvento, evento.DiasEvento);
                return(RedirectToAction("Evento", "Alumno", new { idEvento = idEvento }));
            }
            if (Helper.Desencriptar(Pantalla) == "Empresa")
            {
                TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];
                usuario = ticket.Usuario;
                LNEvento lnEvento = new LNEvento();
                lnEvento.InsertarEventoAsistente(Convert.ToInt32(Helper.Desencriptar(idEvento)), usuario, usuario);
                return(RedirectToAction("Evento", "Empresa", new { idEvento = idEvento }));
            }

            return(PartialView("_Evento", evento));
        }
Пример #7
0
        /// <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));
        }
Пример #8
0
        public PartialViewResult _OfertaInformacionAdicionalEditar(OfertaInformacionAdicional ofertaInfoAdicional)
        {
            if (ModelState.IsValid)
            {
                TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

                //ofertaInfo.IdOferta = 13;
                //ofertaInfo.TipoConocimiento.IdListaValor = "ABE22";
                //ofertaInfo.Conocimiento = "conocimiento22";
                //ofertaInfo.NivelConocimiento.IdListaValor = "ABC22";
                //ofertaInfo.AniosExperiencia = 5;
                //ofertaInfo.EstadoOfertaInformacionAdicional.IdListaValor = "as22";
                ofertaInfoAdicional.ModificadoPor = ticket.Usuario;

                LNOfertaInformacionAdicional lnOfertaInfo = new LNOfertaInformacionAdicional();
                lnOfertaInfo.Actualizar(ofertaInfoAdicional);

                List <OfertaInformacionAdicional> lista = lnInfoAdicional.ObtenerInformacionAdicional(ofertaInfoAdicional.IdOferta, 0);

                ViewBag.IdOferta = ofertaInfoAdicional.IdOferta;
                return(PartialView("_OfertaInformacionAdicional", lista));
            }
            else
            {
                //Código para ubicar los errores en el ModelState.
                var errors = ModelState.Select(x => x.Value.Errors)
                             .Where(y => y.Count > 0)
                             .ToList();

                int a = 0;
            }

            return(PartialView("_OfertaInformacionAdicionalEditar", ofertaInfoAdicional));
        }
Пример #9
0
        public PartialViewResult _OfertaInformacionAdicionalCrear(OfertaInformacionAdicional ofertaInfoAdicional)
        {
            if (ModelState.IsValid)
            {
                TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

                //ofertaInfo.IdOferta = ofertaInfo.IdOferta;
                //ofertaInfo.TipoConocimiento.IdListaValor = "ABE";  //Datos de prueba
                //ofertaInfo.Conocimiento = "conocimiento"; //Datos de prueba
                //ofertaInfo.NivelConocimiento.IdListaValor = "ABC"; //Datos de prueba
                //ofertaInfo.AniosExperiencia = 5; //Datos de prueba
                ofertaInfoAdicional.EstadoOfertaInformacionAdicional.IdListaValor = "OFOCAC"; //Estado oferta Informaciónn adicional Activo
                ofertaInfoAdicional.CreadoPor = ticket.Usuario;

                LNOfertaInformacionAdicional lnOfertaInfo = new LNOfertaInformacionAdicional();
                lnOfertaInfo.Insertar(ofertaInfoAdicional);

                List <OfertaInformacionAdicional> lista = lnInfoAdicional.ObtenerInformacionAdicional(ofertaInfoAdicional.IdOferta, 0);

                ViewBag.IdOferta = ofertaInfoAdicional.IdOferta;
                return(PartialView("_OfertaInformacionAdicional", lista));
            }

            return(PartialView("_OfertaInformacionAdicionalCrear", ofertaInfoAdicional));
        }
        public ActionResult FinalizarOferta(string idOferta, string estado, string pantalla = "")
        {
            LNOferta lnOferta = new LNOferta();

            lnOferta.CambiarEstado(Convert.ToInt32(idOferta), estado);  //Estado oferta finalizado.

            //Correo de la empresa a UTP
            if (pantalla == Constantes.MENSAJES_EMPRESA_OFERTA && estado == "OFERPR") //Se envia pendiente de activación.
            {
                //Si el estado es pendiente de activación se debe mandar un aviso al ejecutivo de cuenta de UTP.
                DataTable dtDatos = lnOferta.ObtenerDatosParaMensaje(Convert.ToInt32(idOferta));

                //Validación de que la tabla contenga datos.
                if (dtDatos.Rows.Count > 0)
                {
                    string        para          = Convert.ToString(dtDatos.Rows[0]["CorreoUTP"]);
                    string        nombreEmpresa = Convert.ToString(dtDatos.Rows[0]["NombreEmpresa"]);
                    string        nombreOferta  = Convert.ToString(dtDatos.Rows[0]["NombreOferta"]);
                    TicketEmpresa ticket        = (TicketEmpresa)Session["TicketEmpresa"];

                    Mensaje mensaje = new Mensaje();
                    mensaje.DeUsuarioCorreoElectronico   = ticket.CorreoElectronico;
                    mensaje.ParaUsuarioCorreoElectronico = para;
                    mensaje.MensajeTexto = "La empresa " + nombreEmpresa + " ha creado la oferta " + nombreOferta + " que está pendiente de activación.";
                    mensaje.Asunto       = nombreOferta + " - Oferta pendiente de activación.";
                    LNCorreo.EnviarCorreo(mensaje);
                }

                //04MAR: Al publicar la oferta se debe redireccionar a la lista de ofertas.
                RedirectToAction("Publicacion", "Empresa");
            }
            else
            //De UTP a la empresa.
            if (pantalla == Constantes.MENSAJES_UTP_OFERTA && estado == "OFERAC")     //UTP envía el estado activado.
            {
                TicketUTP ticket  = (TicketUTP)Session["TicketUtp"];
                DataTable dtDatos = lnOferta.ObtenerDatosParaMensaje(Convert.ToInt32(idOferta));

                if (dtDatos.Rows.Count > 0)
                {
                    string para          = Convert.ToString(dtDatos.Rows[0]["CorreoUsuarioEmpresa"]);
                    string nombreEmpresa = Convert.ToString(dtDatos.Rows[0]["NombreEmpresa"]);
                    string nombreOferta  = Convert.ToString(dtDatos.Rows[0]["NombreOferta"]);

                    Mensaje mensaje = new Mensaje();
                    mensaje.DeUsuarioCorreoElectronico   = ticket.CorreoElectronico;
                    mensaje.ParaUsuarioCorreoElectronico = para;
                    mensaje.MensajeTexto = "La oferta " + nombreOferta + " ha sido activada con éxito.";
                    mensaje.Asunto       = nombreOferta + " - Oferta activada";
                    LNCorreo.EnviarCorreo(mensaje);
                }
            }


            //No debe retornar vistas.
            return(Content(""));
        }
Пример #11
0
        public static string ObtenerRolEmpresa()
        {
            string valor = string.Empty;

            var currentSession = HttpContext.Current.Session;
            var myValue        = currentSession["TicketEmpresa"];

            TicketEmpresa ticketUtp = (TicketEmpresa)myValue;

            return(ticketUtp.Rol);
        }
Пример #12
0
        public PartialViewResult _ObtenerMensajes(int id)
        {
            int idOferta = id;

            TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

            //Se guarda el Id de la oferta
            ViewBag.IdOferta = idOferta;

            List <Mensaje> lista = lnMensaje.ObtenerPorIdEmpresaIdOferta(ticket.IdEmpresa, idOferta);

            return(PartialView("_ObtenerMensajes", lista));
        }
Пример #13
0
        public ActionResult Contacto(Mensaje mensaje)
        {
            LNMensaje lnMensaje = new LNMensaje();

            if (mensaje.Pantalla == Constantes.MENSAJES_EMPRESA_CONTACTO)
            {
                TicketEmpresa ticketEmpresa     = (TicketEmpresa)Session["TicketEmpresa"];
                DataTable     dtUsuarioAsignado = lnMensaje.ObtenerUsuarioUTPAsignadoAEmpresa(ticketEmpresa.IdEmpresa);

                if (dtUsuarioAsignado.Rows.Count > 0)
                {
                    mensaje.ParaUsuario = Convert.ToString(dtUsuarioAsignado.Rows[0]["Usuario"]);
                    mensaje.ParaUsuarioCorreoElectronico = Convert.ToString(dtUsuarioAsignado.Rows[0]["CorreoElectronico"]);
                    mensaje.CreadoPor = ticketEmpresa.Usuario;
                }
            }
            else
            if (mensaje.Pantalla == Constantes.MENSAJES_ALUMNO_CONTACTO)
            {
                TicketAlumno ticketAlumno = (TicketAlumno)Session["TicketAlumno"];

                //Obtener usuario administrador UTP.
                DataTable dtUsuarioUTPAdmin = lnMensaje.ObtenerUsuarioAdministradorUTP();

                mensaje.ParaUsuario = Convert.ToString(dtUsuarioUTPAdmin.Rows[0]["Usuario"]);
                mensaje.ParaUsuarioCorreoElectronico = Convert.ToString(dtUsuarioUTPAdmin.Rows[0]["CorreoElectronico"]);
                mensaje.CreadoPor = ticketAlumno.Usuario;
            }
            else
            if (mensaje.Pantalla == Constantes.MENSAJES_INICIO)
            {
                //Obtener usuario administrador UTP.
                DataTable dtUsuarioUTPAdmin = lnMensaje.ObtenerUsuarioAdministradorUTP();

                mensaje.ParaUsuario = Convert.ToString(dtUsuarioUTPAdmin.Rows[0]["Usuario"]);
                mensaje.ParaUsuarioCorreoElectronico = Convert.ToString(dtUsuarioUTPAdmin.Rows[0]["CorreoElectronico"]);
                mensaje.DeUsuario = mensaje.DeUsuarioCorreoElectronico;
                mensaje.CreadoPor = mensaje.DeUsuarioCorreoElectronico;         //Se coloca el correo de la persona.
            }

            mensaje.FechaEnvio    = DateTime.Now;
            mensaje.IdEvento      = 0;
            mensaje.EstadoMensaje = "MSJNOL";  //Pendiente de ser leido


            lnMensaje.Insertar(mensaje);

            TempData["MsjExitoCrearMensaje"] = "El mensaje se envió con éxito";

            return(RedirectToAction("Contacto", new { pantalla = mensaje.Pantalla }));
        }
Пример #14
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            TicketEmpresa ticket = (TicketEmpresa)filterContext.HttpContext.Session["TicketEmpresa"];

            string[] listaRoles = Rol.Split(',');
            if (!listaRoles.Contains(ticket.Rol))
            {
                //Si el usuario autenticado no pertenece al Rol del parámetro => se redirecciona a la página principal.
                filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Empresa", action = "Index" }));
                filterContext.Result.ExecuteResult(filterContext.Controller.ControllerContext);
            }

            //Caso contrario la ejecución continúa de manera normal.
            base.OnActionExecuting(filterContext);
        }
Пример #15
0
        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));
        }
Пример #16
0
 //[ChildActionOnly]
 public PartialViewResult _Evento(string Pantalla, string idEvento)
 {
     ViewBag.Pantalla = Pantalla;
     if (Pantalla == "Alumno")
     {
         TicketAlumno ticket   = (TicketAlumno)Session["TicketAlumno"];
         LNEvento     lnEvento = new LNEvento();
         Evento       evento   = lnEvento.EventoPorUsuario(Convert.ToInt32(Helper.Desencriptar(idEvento)), ticket.Usuario);
         return(PartialView("_Evento", evento));
     }
     else
     {
         TicketEmpresa ticket   = (TicketEmpresa)Session["TicketEmpresa"];
         LNEvento      lnEvento = new LNEvento();
         Evento        evento   = lnEvento.EventoPorUsuario(Convert.ToInt32(Helper.Desencriptar(idEvento)), ticket.Usuario);
         return(PartialView("_Evento", evento));
     }
 }
Пример #17
0
 public PartialViewResult _Eventos(string Pantalla)
 {
     ViewBag.Pantalla = Pantalla;
     if (Pantalla == "Alumno")
     {
         TicketAlumno           ticket   = (TicketAlumno)Session["TicketAlumno"];
         LNEvento               lnEvento = new LNEvento();
         VistaEventosPorUsuario evento   = lnEvento.EventosPorUsuario(ticket.Usuario);
         return(PartialView(evento));
     }
     else
     {
         TicketEmpresa          ticket   = (TicketEmpresa)Session["TicketEmpresa"];
         LNEvento               lnEvento = new LNEvento();
         VistaEventosPorUsuario evento   = lnEvento.EventosPorUsuario(ticket.Usuario);
         return(PartialView(evento));
     }
 }
Пример #18
0
        //public override void OnActionExecuting(ActionExecutingContext filterContext)
        //{
        //

        //    base.OnActionExecuting(filterContext);
        //}

        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            if (filterContext.Exception != null)
            {
                TicketEmpresa ticketEmpresa = (TicketEmpresa)filterContext.HttpContext.Session["TicketEmpresa"];
                TicketAlumno  ticketAlumno  = (TicketAlumno)filterContext.HttpContext.Session["TicketAlumno"];
                TicketUTP     ticketUTP     = (TicketUTP)filterContext.HttpContext.Session["TicketUtp"];

                string ip          = HttpContext.Current.Request.UserHostAddress;
                string accion      = "";
                string controlador = "";

                //Se obtiene la acción y el controlador:
                var routeValues = HttpContext.Current.Request.RequestContext.RouteData.Values;
                if (routeValues != null)
                {
                    if (routeValues.ContainsKey("action"))
                    {
                        accion = routeValues["action"].ToString();
                    }
                    if (routeValues.ContainsKey("controller"))
                    {
                        controlador = routeValues["controller"].ToString();
                    }
                }

                //Se obtiene el usuario autenticado:
                string usuario = ticketEmpresa == null ? (ticketAlumno == null ? ticketUTP.Usuario : ticketAlumno.Usuario) : ticketEmpresa.Usuario;
                Error  error   = new Error();
                error.Usuario             = usuario;
                error.IP                  = ip;
                error.Accion              = accion;
                error.Controlador         = controlador;
                error.ErrorMessage        = filterContext.Exception.Message;
                error.ErrorInnerException = filterContext.Exception.InnerException == null ? "" : filterContext.Exception.InnerException.Message;
                error.ErrorSource         = filterContext.Exception.Source;
                error.ErrorStackTrace     = filterContext.Exception.StackTrace;

                LNLog.InsertarLog(error);
            }

            base.OnActionExecuted(filterContext);
        }
Пример #19
0
        /// <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));
        }
Пример #20
0
        public PartialViewResult _MensajeFormularioGrabar(Mensaje mensaje)
        {
            TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

            mensaje.DeUsuario = ticket.Usuario;
            mensaje.DeUsuarioCorreoElectronico   = ticket.CorreoElectronico;
            mensaje.ParaUsuarioCorreoElectronico = "*****@*****.**";
            mensaje.FechaEnvio    = DateTime.Now;
            mensaje.IdEvento      = 0;
            mensaje.EstadoMensaje = "MSJNOL";  //Pendiente de ser leido
            mensaje.CreadoPor     = ticket.Usuario;

            lnMensaje.Insertar(mensaje);

            List <Mensaje> lista = lnMensaje.ObtenerPorIdEmpresaIdOferta(ticket.IdEmpresa, mensaje.IdOferta);

            ViewBag.IdOferta = mensaje.IdOferta;

            return(PartialView("_ObtenerMensajes", lista));
        }
Пример #21
0
        public PartialViewResult _MensajesVer(int idMensaje, string pantalla)
        {
            Mensaje mensaje = lnMensaje.ObtenerPorIdMensaje(idMensaje);

            mensaje.Pantalla = pantalla;

            //Se obtiene al remitente del mensaje:
            string remitente = mensaje.DeUsuario;

            //Se obtiene al usuario que está autenticado:
            TicketEmpresa ticketEmpresa = (TicketEmpresa)Session["TicketEmpresa"];
            TicketAlumno  ticketAlumno  = (TicketAlumno)Session["TicketAlumno"];
            TicketUTP     ticketUTP     = (TicketUTP)Session["TicketUtp"];

            string usuarioAutenticado = "";

            if (ticketEmpresa != null)
            {
                usuarioAutenticado = ticketEmpresa.Usuario;                        //usuario de empresa
            }
            else if (ticketAlumno != null)
            {
                usuarioAutenticado = ticketAlumno.Usuario;                            //usuario alumno
            }
            else if (ticketUTP != null)
            {
                usuarioAutenticado = ticketUTP.Usuario;                         //usuario utp
            }
            ViewBag.BotonContestar = "";
            if (remitente == usuarioAutenticado)
            {
                ViewBag.BotonContestar = "disabled";
            }
            else
            {
                //Se actualiza el estado del mensaje, sólo si el remitente es distinto al usuario autenticado.
                lnMensaje.ActualizarEstadoMensaje(idMensaje, "MSJLEI");  //Se actualiza a mensaje a leído.
            }

            return(PartialView("_MensajesVer", mensaje));
        }
Пример #22
0
        public PartialViewResult _OfertaEstudioCrear(OfertaEstudio ofertaEstudio)
        {
            //Aldo 09FEB: Si el tipo de estudio es distinto a universitario se reemplaza el campo EstudioTexto en Estudio
            //Si el campo TipoDeEstudioIdListaValor es TEUNIV entonces el dato de estudio sí se encuentra en ofertaEstudio.Estudio y no se necesita reemplazar.
            if (ofertaEstudio.TipoDeEstudioIdListaValor != Constantes.TIPO_ESTUDIO_UNIVERSITARIO)
            {
                ModelState.Remove("Estudio"); //Se quita el campo porque tiene null.
                ofertaEstudio.Estudio = ofertaEstudio.EstudioTexto;
            }
            if (ModelState.IsValid)
            {
                TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];
                //string usuarioCreacion = ticket.UsuarioNombre;

                //ofertaEstudio.IdOferta = 13;
                //ofertaEstudio.CicloEstudio = "AWE";
                //ofertaEstudio.Estudio = "Estudios";
                //ofertaEstudio.TipoDeEstudio.IdListaValor = "ABC";
                //ofertaEstudio.EstadoDelEstudio.IdListaValor = "AWE";
                ofertaEstudio.EstadoOfertaEstudio.IdListaValor = "OFESAC"; //Estado oferta estudio activa.
                ofertaEstudio.CreadoPor = ticket.Usuario;

                LNOfertaEstudio lnOfertaEstudio = new LNOfertaEstudio();
                lnOfertaEstudio.Insertar(ofertaEstudio);

                List <OfertaEstudio> lista = lnOfertaEstudio.ObtenerEstudiosNoUniversitarios(ofertaEstudio.IdOferta, idOfertaEstudiosTodos);

                ViewBag.IdOferta = ofertaEstudio.IdOferta;

                return(PartialView("_OfertaEstudio", lista));
            }
            else
            {
                var errors = ModelState.Select(x => x.Value.Errors)
                             .Where(y => y.Count > 0)
                             .ToList();

                int a = 0;
            }
            return(PartialView("_OfertaEstudioCrear", ofertaEstudio));
        }
Пример #23
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            TicketEmpresa ticket = (TicketEmpresa)filterContext.HttpContext.Session["TicketEmpresa"];

            if (ticket.Rol == "ROLADM") //Rol administrador.
            {
                if (filterContext.Controller.TempData.ContainsKey("keyDemo"))
                {
                    filterContext.Controller.TempData["keyDemo"] = "MensajeDemo";
                }
                else
                {
                    filterContext.Controller.TempData.Add("keyDemo", "MensajeDemo");
                }

                filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Empresa", action = "Index" }));
                filterContext.Result.ExecuteResult(filterContext.Controller.ControllerContext);
            }

            base.OnActionExecuting(filterContext);
        }
Пример #24
0
        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));
        }
Пример #25
0
        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));
        }
        public ActionResult CambiarEstadoPostulante(int idOfertaPostulante, string faseOferta)
        {
            TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

            LNOferta lnOferta = new LNOferta();

            List <OfertaPostulante> lista = new List <OfertaPostulante>();

            OfertaPostulante ofertaPostulante = new OfertaPostulante();

            ofertaPostulante.IdOfertaPostulante = idOfertaPostulante;
            ofertaPostulante.ModificadoPor      = ticket.Usuario;
            ofertaPostulante.Seleccionado       = true; //Valor agregado por compatibilidad con otro proceso. Se coloca True para indicar que Sí debe actualizar el campo.
            lista.Add(ofertaPostulante);

            lnOferta.ActualizarFaseDePostulantes(lista, faseOferta);

            //Se obtiene la descripción de la oferta:
            LNGeneral  lnGeneral      = new LNGeneral();
            ListaValor listaValorFase = lnGeneral.ObtenerListaValor(Constantes.IDLISTA_FASE_OFERTA).Where(m => m.IdListaValor == faseOferta).FirstOrDefault();

            //Se retorna la descripción de la fase seleccionada.
            return(Content(listaValorFase.DescripcionValor));
        }
Пример #27
0
        public PartialViewResult _MensajesNuevo(Mensaje mensaje)
        {
            if (mensaje.Pantalla == Constantes.MENSAJES_EMPRESA_INDEX || mensaje.Pantalla == Constantes.MENSAJES_EMPRESA_OFERTA ||
                mensaje.Pantalla == Constantes.MENSAJES_EMPRESA_EVENTO)
            {
                TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

                mensaje.DeUsuario = ticket.Usuario;
                mensaje.DeUsuarioCorreoElectronico = ticket.CorreoElectronico;
                mensaje.CreadoPor       = ticket.Usuario;
                mensaje.DeUsuarioNombre = ticket.Nombre;
            }
            else
            if (mensaje.Pantalla == Constantes.MENSAJES_ALUMNO_INDEX || mensaje.Pantalla == Constantes.MENSAJES_ALUMNO_OFERTA ||
                mensaje.Pantalla == Constantes.MENSAJES_ALUMNO_EVENTO)
            {
                TicketAlumno ticketAlumno = (TicketAlumno)Session["TicketAlumno"];
                mensaje.DeUsuario = ticketAlumno.Usuario;
                mensaje.DeUsuarioCorreoElectronico = ticketAlumno.CorreoElectronico;
                mensaje.CreadoPor       = ticketAlumno.Usuario;
                mensaje.DeUsuarioNombre = ticketAlumno.Nombre;
            }
            else
            if (mensaje.Pantalla == Constantes.MENSAJES_UTP_INDEX || mensaje.Pantalla == Constantes.MENSAJES_UTP_ALUMNO ||
                mensaje.Pantalla == Constantes.MENSAJES_UTP_OFERTA || mensaje.Pantalla == Constantes.MENSAJES_UTP_EVENTO ||
                mensaje.Pantalla == Constantes.MENSAJES_UTP_EMPRESA)
            {
                TicketUTP ticketUtp = (TicketUTP)Session["TicketUtp"];
                mensaje.DeUsuario = ticketUtp.Usuario;
                mensaje.DeUsuarioCorreoElectronico = ticketUtp.CorreoElectronico;
                mensaje.CreadoPor       = ticketUtp.Usuario;
                mensaje.DeUsuarioNombre = ticketUtp.Nombre;
            }



            mensaje.FechaEnvio    = DateTime.Now;
            mensaje.EstadoMensaje = "MSJNOL";  //Pendiente de ser leido

            if (mensaje.Pantalla == Constantes.MENSAJES_EMPRESA_HUNTING)
            {
                TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

                mensaje.DeUsuario = ticket.Usuario;
                mensaje.DeUsuarioCorreoElectronico = ticket.CorreoElectronico;
                mensaje.CreadoPor       = ticket.Usuario;
                mensaje.DeUsuarioNombre = ticket.Nombre;
                lnMensaje.InsertarHunting(mensaje);
            }
            else
            {
                lnMensaje.Insertar(mensaje);
            }

            //Se guardan las variables para utilizarlas al obtener la lista de mensajes.
            ViewBag.Pantalla       = mensaje.Pantalla;
            this.UsuarioAlumno     = mensaje.ParaUsuario;
            this.IdOferta          = Convert.ToInt32(mensaje.IdOfertaMensaje);
            this.IdEventoParametro = Convert.ToInt32(mensaje.IdEvento);

            List <Mensaje> lista = ObtenerListaMensajes(mensaje.Pantalla);

            ViewBag.IdOfertaMensaje = mensaje.IdOfertaMensaje;
            ViewBag.IdOferta        = mensaje.IdOfertaMensaje;
            ViewBag.IdEvento        = mensaje.IdEvento;
            ViewBag.UsuarioAlumno   = mensaje.ParaUsuario; //Este valor contiene el dato del usuario alumno en las pantallas UTP - Alumno.

            TempData["MsjExitoCrearMensaje"] = "El mensaje se ha enviado con éxito.";

            return(PartialView("_Mensajes", lista.OrderByDescending(m => m.FechaEnvio)));
        }
Пример #28
0
        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));
        }
Пример #29
0
        /// <summary>
        /// Obtiene la lista de mensajes de acuerdo a la pantalla.
        /// </summary>
        /// <param name="pantalla"></param>
        /// <returns></returns>
        private List <Mensaje> ObtenerListaMensajes(string pantalla, int nroPaginaActual = 1)
        {
            List <Mensaje> lista = new List <Mensaje>();

            TicketEmpresa ticketEmpresa = (TicketEmpresa)Session["TicketEmpresa"];
            TicketAlumno  ticketAlumno  = (TicketAlumno)Session["TicketAlumno"];
            TicketUTP     ticketUTP     = (TicketUTP)Session["TicketUtp"];

            switch (pantalla)
            {
            case Constantes.MENSAJES_EMPRESA_INDEX:
                lista = lnMensaje.ObtenerPorUsuario(ticketEmpresa.Usuario);
                ViewBag.usuarioActual = ticketEmpresa.Usuario;
                break;

            case Constantes.MENSAJES_EMPRESA_OFERTA:
                lista = lnMensaje.ObtenerPorIdEmpresaIdOferta(ticketEmpresa.IdEmpresa, IdOferta);
                ViewBag.usuarioActual = ticketEmpresa.Usuario;
                break;

            case Constantes.MENSAJES_ALUMNO_INDEX:
                lista = lnMensaje.ObtenerPorUsuario(ticketAlumno.Usuario);
                ViewBag.usuarioActual = ticketAlumno.Usuario;
                break;

            case Constantes.MENSAJES_ALUMNO_OFERTA:
                lista = lnMensaje.ObtenerPorUsuario(ticketAlumno.Usuario).Where(m => m.Oferta.IdOferta == IdOferta).ToList();
                ViewBag.usuarioActual = ticketAlumno.Usuario;
                break;

            case Constantes.MENSAJES_UTP_INDEX:
                lista = lnMensaje.ObtenerPorUsuario(ticketUTP.Usuario);
                ViewBag.usuarioActual = ticketUTP.Usuario;
                break;

            case Constantes.MENSAJES_UTP_EMPRESA:
                //No se puede obtener mensajes solo de una empresa. La tabla Mensajes no tiene idEmpresa.
                //19FEB: Se comenta esta línea y se obtienen todos los mensajes del usuario.
                //lista = lnMensaje.ObtenerPorIdEmpresaIdOferta(IdEmpresaParametro, 0);
                lista = lnMensaje.ObtenerPorUsuario(ticketUTP.Usuario);
                ViewBag.usuarioActual = ticketUTP.Usuario;
                break;

            case Constantes.MENSAJES_UTP_ALUMNO:
                lista = lnMensaje.ObtenerPorUsuario(ticketUTP.Usuario).Where(m => m.DeUsuario == UsuarioAlumno || m.ParaUsuario == UsuarioAlumno).ToList();
                ViewBag.usuarioActual = ticketUTP.Usuario;
                break;

            case Constantes.MENSAJES_UTP_OFERTA:
                lista = lnMensaje.ObtenerPorUsuario(ticketUTP.Usuario).Where(m => m.Oferta.IdOferta == IdOferta).ToList();
                ViewBag.usuarioActual = ticketUTP.Usuario;
                break;

            case Constantes.MENSAJES_EMPRESA_EVENTO:
                lista = lnMensaje.ObtenerPorUsuario(ticketEmpresa.Usuario).Where(m => m.IdEvento == IdEventoParametro).ToList();
                ViewBag.usuarioActual = ticketEmpresa.Usuario;
                break;

            case Constantes.MENSAJES_ALUMNO_EVENTO:
                lista = lnMensaje.ObtenerPorUsuario(ticketAlumno.Usuario).Where(m => m.IdEvento == IdEventoParametro).ToList();
                ViewBag.usuarioActual = ticketAlumno.Usuario;
                break;

            case Constantes.MENSAJES_UTP_EVENTO:
                lista = lnMensaje.ObtenerPorUsuario(ticketUTP.Usuario).Where(m => m.IdEvento == IdEventoParametro).ToList();
                ViewBag.usuarioActual = ticketUTP.Usuario;
                break;

            case Constantes.MENSAJES_EMPRESA_HUNTING:
                lista = lnMensaje.ObtenerPorUsuario(ticketEmpresa.Usuario);
                ViewBag.usuarioActual = ticketEmpresa.Usuario;
                break;
            }

            int cantidadTotal = lista.Count();

            //Esto van en todas las paginas
            Paginacion paginacion = new Paginacion();

            paginacion.NroPaginaActual         = nroPaginaActual;
            paginacion.CantidadTotalResultados = cantidadTotal;
            paginacion.FilasPorPagina          = Constantes.FILAS_POR_PAGINA;
            paginacion.TotalPaginas            = cantidadTotal / Constantes.FILAS_POR_PAGINA;
            int residuo = cantidadTotal % Constantes.FILAS_POR_PAGINA;

            if (residuo > 0)
            {
                paginacion.TotalPaginas += 1;
            }

            ViewBag.Paginacion   = paginacion;
            ViewBag.TipoBusqueda = "Simple";

            return(lista.OrderByDescending(m => m.FechaEnvio).Skip((nroPaginaActual - 1) * Constantes.FILAS_POR_PAGINA).Take(Constantes.FILAS_POR_PAGINA).ToList());
        }
        public ActionResult Autenticar(Usuario usuario)
        {
            if (Session["Captcha"] == null || usuario.Captcha == null || Convert.ToString(Session["Captcha"]) != Convert.ToString(usuario.Captcha).ToLower())
            {
                TempData["UsuarioNoExitoso"] = "El texto no coincide con la imagen";
                //ModelState.AddModelError("Captcha", "Wrong value of sum, please try again.");
                return(RedirectToAction("Index", "Home"));
            }

            List <Usuario> lista = new List <Usuario>();

            //1. Recuperar datos de Usuario
            DataSet dsResultado = ln.Autenticar_Usuario(usuario.NombreUsuario);

            //2. Si el Usuario existe en el Portal validar que está activo
            if (dsResultado.Tables[0].Rows.Count > 0)
            {
                string estadoUsuario = Convert.ToString(dsResultado.Tables[0].Rows[0]["EstadoUsuario"]);

                if (estadoUsuario == "USEMAC")
                {
                    // 3. Si está activo Validar su Contraseña
                    string tipoUsuario            = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoUsuario"]);
                    string contrasenaDecodificada = Convert.ToString(dsResultado.Tables[0].Rows[0]["Contrasena"]); //AGREGAR PROCESO DE DESEMCRIPTAMIENTO
                    bool   contrasenaValida       = false;
                    //4. Si es Alumno o Usuario UTP Validar contra el AD
                    if (tipoUsuario == "USERUT" || tipoUsuario == "USERAL")
                    {
                        if (tipoUsuario == "USERUT")
                        {
                            if (ValidadADEmpleado(usuario.NombreUsuario, usuario.Contrasena))
                            {
                                contrasenaValida = true;
                            }
                        }
                        if (tipoUsuario == "USERAL")
                        {
                            if (ValidadADAlumno(usuario.NombreUsuario, usuario.Contrasena))
                            {
                                contrasenaValida = true;
                                autenticarExchange(usuario);
                            }
                        }
                    }
                    else
                    {
                        byte[] bytes     = Encoding.Default.GetBytes(usuario.Contrasena);
                        SHA1   sha       = new SHA1CryptoServiceProvider();
                        byte[] password  = sha.ComputeHash(bytes);
                        String spassword = Encoding.Default.GetString(password);
                        // This is one implementation of the abstract class SHA1.
                        if (contrasenaDecodificada == spassword)
                        {
                            contrasenaValida = true;
                        }
                    }
                    //Si la contraseña es válida, recupera los datos del Usuario de acuerdo al tipo, y contruye la session
                    if (contrasenaValida)
                    {
                        if (tipoUsuario == "USERUT")
                        {
                            //Crear un onbjketo TikcetUTP

                            TicketUTP ticketUtp = new TicketUTP();
                            ticketUtp.Usuario           = Convert.ToString(dsResultado.Tables[3].Rows[0]["Usuario"]);
                            ticketUtp.Nombre            = Convert.ToString(dsResultado.Tables[3].Rows[0]["Nombre"]);
                            ticketUtp.CorreoElectronico = Convert.ToString(dsResultado.Tables[3].Rows[0]["CorreoElectronico"]);
                            ticketUtp.TelefonoCelular   = Convert.ToString(dsResultado.Tables[3].Rows[0]["TelefonoCelular"]);
                            ticketUtp.TipoUsuario       = Convert.ToString(dsResultado.Tables[3].Rows[0]["TipoUsuario"]);

                            ////agrege este campo
                            ticketUtp.Rol = Convert.ToString(dsResultado.Tables[0].Rows[0]["Rol"]);

                            Session["TicketUtp"] = ticketUtp;


                            //TempData["ADMINISTRADORUTP"] = ticketUtp.Rol;

                            //ViewBag.mensaje = ticketUtp.Rol;


                            //REdireccionas al indexl de la uitp
                            return(RedirectToAction("Index", "UTP"));
                        }
                        if (tipoUsuario == "USEREM")
                        {
                            //Crear un onbjketo TikcetEmpresa

                            TicketEmpresa ticketEmpresa = new TicketEmpresa();
                            ticketEmpresa.Usuario           = Convert.ToString(dsResultado.Tables[2].Rows[0]["Usuario"]);
                            ticketEmpresa.Nombre            = Convert.ToString(dsResultado.Tables[2].Rows[0]["Nombre"]);
                            ticketEmpresa.DNI               = Convert.ToString(dsResultado.Tables[2].Rows[0]["Dni"]);
                            ticketEmpresa.CorreoElectronico = Convert.ToString(dsResultado.Tables[2].Rows[0]["CorreoElectronico"]);
                            ticketEmpresa.TelefonoCelular   = Convert.ToString(dsResultado.Tables[2].Rows[0]["TelefonoCelular"]);
                            ticketEmpresa.TipoUsuario       = Convert.ToString(dsResultado.Tables[2].Rows[0]["TipoUsuario"]);
                            ticketEmpresa.IdEmpresa         = Convert.ToInt32(dsResultado.Tables[2].Rows[0]["IdEmpresa"]);
                            ticketEmpresa.Rol               = Convert.ToString(dsResultado.Tables[2].Rows[0]["Rol"]);

                            Session["TicketEmpresa"] = ticketEmpresa;


                            //TicketEmpresa tcke2 = (TicketEmpresa)Session["TicketEmpresa"];

                            //REdireccionas al indexl de la empresa

                            Ticket ticket = new Ticket();
                            ticket.UsuarioNombre = usuario.NombreUsuario;
                            ticket.IdEmpresa     = 1;

                            Session["Ticket"] = ticket;

                            return(RedirectToAction("Index", "Empresa"));
                        }
                        if (tipoUsuario == "USERAL")
                        {
                            //Valida la contraseña en el AD.


                            TicketAlumno ticketAlumno = new TicketAlumno();
                            ticketAlumno.Usuario           = Convert.ToString(dsResultado.Tables[1].Rows[0]["Usuario"]);
                            ticketAlumno.Nombre            = Convert.ToString(dsResultado.Tables[1].Rows[0]["Nombre"]);
                            ticketAlumno.DNI               = Convert.ToString(dsResultado.Tables[1].Rows[0]["Dni"]);
                            ticketAlumno.CorreoElectronico = Convert.ToString(dsResultado.Tables[1].Rows[0]["CorreoElectronico"]);
                            ticketAlumno.TelefonoCelular   = Convert.ToString(dsResultado.Tables[1].Rows[0]["TelefonoCelular"]);
                            ticketAlumno.TipoUsuario       = Convert.ToString(dsResultado.Tables[1].Rows[0]["TipoUsuario"]);
                            ticketAlumno.CodAlumnoUTP      = Convert.ToString(dsResultado.Tables[1].Rows[0]["CodAlumnoUtp"]);
                            ticketAlumno.IdAlumno          = Convert.ToInt32(dsResultado.Tables[1].Rows[0]["IdAlumno"]);

                            Session["TicketAlumno"] = ticketAlumno;


                            //REdireccionas al indexl del alumno
                            return(RedirectToAction("Index", "Alumno"));
                        }
                    }
                    else
                    {
                        //Mensaje de error de contraseña
                        TempData["UsuarioNoExitoso"] = "Contraseña inválida";
                    }
                }
                else
                {
                    //Mensaje de error de Usuario no activo
                    if (estadoUsuario == "USEMFI")
                    {
                        TempData["UsuarioNoExitoso"] = "Usuario Deshabilitado, comuníquese con su Administrador";
                    }
                    if (estadoUsuario == "USEMNO")
                    {
                        TempData["UsuarioNoExitoso"] = "Usuario Desactivado, comuníquese con su Administrador";
                    }
                    if (estadoUsuario == "USEUTP")
                    {
                        TempData["UsuarioNoExitoso"] = "Usuario pendiente de Validación por UTP";
                    }
                }
            }
            else
            {
                //Si no existe se busca en la tabla UTPAlumno

                //Buscar al usuario en UTPAlumno
                LNUTPAlumnos lnUTPAlumnos  = new LNUTPAlumnos();
                DataSet      dsDatosAlumno = lnUTPAlumnos.ObtenerDatosPorCodigo(usuario.NombreUsuario);

                if (dsDatosAlumno.Tables[0].Rows.Count > 0)
                {
                    //Si la tabla contiene filas => sí existe el alumno en la tabla UTPAlumnos.

                    //1. Validar la contraseña con el AD
                    bool tieneAcceso = false;
                    //bool tieneAcceso = callWebServiceADUTP(usuario.Contrasena)
                    tieneAcceso = true;

                    if (tieneAcceso)
                    {
                        //2. Leer el campo PrimerInicioDeSesion. Si es nulo entonces insertar la información en Usuario, Alumno y AlumnoEstudio.
                        //3. Actualizar el campo PrimerInicioDeSesion a 1.
                        int idAlumno = 0;
                        if (dsDatosAlumno.Tables[0].Rows[0]["PrimerInicioDeSesion"] == DBNull.Value)
                        {
                            //Insertar en [Usuario]
                            idAlumno = lnUTPAlumnos.InsertarDatosDeAlumno(dsDatosAlumno);
                        }

                        TicketAlumno ticketAlumno = new TicketAlumno();
                        ticketAlumno.Usuario           = Convert.ToString(dsDatosAlumno.Tables[0].Rows[0]["Codigo"]);
                        ticketAlumno.Nombre            = Convert.ToString(dsDatosAlumno.Tables[0].Rows[0]["Nombres"]) + " " + Convert.ToString(dsDatosAlumno.Tables[0].Rows[0]["Apellidos"]);
                        ticketAlumno.DNI               = Convert.ToString(dsDatosAlumno.Tables[0].Rows[0]["NumeroDocumento"]);
                        ticketAlumno.CorreoElectronico = Convert.ToString(dsDatosAlumno.Tables[0].Rows[0]["CorreoInstitucional"]);
                        ticketAlumno.TelefonoCelular   = Convert.ToString(dsDatosAlumno.Tables[0].Rows[0]["Celular"]);
                        ticketAlumno.TipoUsuario       = "USERAL";
                        ticketAlumno.CodAlumnoUTP      = Convert.ToString(dsDatosAlumno.Tables[0].Rows[0]["Codigo"]);
                        ticketAlumno.IdAlumno          = idAlumno;

                        Session["TicketAlumno"] = ticketAlumno;

                        autenticarExchange(usuario);
                        //Si tiene acceso se redirecciona al portal principal del alumno.
                        return(RedirectToAction("Index", "Alumno"));
                    }
                    else
                    {
                        //Mensaje de error de contraseña
                        TempData["UsuarioNoExitoso"] = "Contraseña inválida";
                    }
                }
                else
                {
                    //Mensaje de error de contraseña
                    TempData["UsuarioNoExitoso"] = "Usuario o Contraseña inválida";
                }

                //ViewBag.Message = "Registrese";
                //return RedirectToAction("Autenticar", "Cuenta");
                //return JavaScript("OnFailure();");
            }



            //return PartialView("_Login", usuario);
            //TempData["UsuarioNoExitoso"] = usuario.NombreUsuario;
            //Aquí debería enviarse un correo
            return(RedirectToAction("Index", "Home"));
        }