private PartialViewResult mensajeUTPAlumnoNuevo(string pantalla, string usuarioAlumno) { TicketUTP ticketUtp = (TicketUTP)Session["TicketUtp"]; LNAlumno lnAlumno = new LNAlumno(); Alumno alumno = lnAlumno.ObtenerAlumnoPorCodigo(usuarioAlumno); Mensaje mensaje = new Mensaje(); mensaje.DeUsuario = ticketUtp.Usuario; mensaje.DeUsuarioCorreoElectronico = ticketUtp.CorreoElectronico; mensaje.ParaUsuario = usuarioAlumno; mensaje.ParaUsuarioNombre = usuarioAlumno; mensaje.ParaUsuarioCorreoElectronico = alumno.CorreoElectronico1; mensaje.CreadoPor = ticketUtp.Usuario; mensaje.Pantalla = pantalla; //Hallar las ofertas a las que el alumno a postulado. List <VistaAlumnoOferta> listaOfertas = lnMensaje.ObtenerOfertasPorIdAlumno(alumno.IdAlumno); //Se cargan en el ViewBag para ser consumidas desde el html. ViewBag.IdOfertaMensaje = new SelectList(listaOfertas, "IdOferta", "CargoOfrecido"); return(PartialView("_MensajesNuevo", mensaje)); }
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("")); }
private PartialViewResult mensajeUTPIndexNuevo(string pantalla) { TicketUTP ticketUtp = (TicketUTP)Session["TicketUtp"]; Mensaje mensaje = new Mensaje(); mensaje.DeUsuario = ticketUtp.Usuario; mensaje.DeUsuarioCorreoElectronico = ticketUtp.CorreoElectronico; mensaje.CreadoPor = ticketUtp.Usuario; mensaje.Pantalla = pantalla; return(PartialView("_MensajesNuevo", mensaje)); }
private PartialViewResult mensajeUTPEmpresaNuevo(string pantalla) { TicketUTP ticketUtp = (TicketUTP)Session["TicketUtp"]; DataTable dt = lnMensaje.ObtenerUsuarioEmpresaPorIdEmpresa(IdEmpresaParametro); Mensaje mensaje = new Mensaje(); mensaje.DeUsuario = ticketUtp.Usuario; mensaje.DeUsuarioCorreoElectronico = ticketUtp.CorreoElectronico; mensaje.ParaUsuario = Convert.ToString(dt.Rows[0]["Usuario"]); mensaje.ParaUsuarioNombre = Convert.ToString(dt.Rows[0]["Usuario"]); mensaje.ParaUsuarioCorreoElectronico = Convert.ToString(dt.Rows[0]["CorreoElectronico"]); mensaje.CreadoPor = ticketUtp.Usuario; mensaje.Pantalla = pantalla; return(PartialView("_MensajesNuevo", mensaje)); }
//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); }
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)); }
private PartialViewResult mensajeUTPEventoNuevo(string pantalla, int idEvento) { ViewBag.Pantalla = pantalla; TicketUTP ticketUTP = (TicketUTP)Session["TicketUtp"]; LNEvento lnEvento = new LNEvento(); DataTable dtEvento = lnEvento.EVENTO_OBTENERPORID(idEvento); Mensaje mensaje = new Mensaje(); mensaje.DeUsuario = ticketUTP.Usuario; mensaje.DeUsuarioCorreoElectronico = ticketUTP.CorreoElectronico; mensaje.Pantalla = pantalla; mensaje.Asunto = Convert.ToString(dtEvento.Rows[0]["NombreEvento"]); //mensaje.ParaUsuario = "faltaUsuarioUTPDelEvento"; //mensaje.ParaUsuarioCorreoElectronico = "faltaUsuarioCorreoUTPDelEvento"; //ViewBag.ParaUsuario = lnEvento.ObtenerAsistentes(idEvento, "EVTAAL"); //tipo alumno. ViewBag.IdEventoGeneral = idEvento; return(PartialView("_MensajesNuevo", mensaje)); }
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")); }
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> /// 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 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))); }