public ActionResult GenerarToken(string NombreUsuario, string submitButton, string token) { LNUsuario lnUsuario = new LNUsuario(); DataSet dsResultado = ln.Autenticar_Usuario(NombreUsuario); string tipoUsuario = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoUsuario"]); if (tipoUsuario == "USEREM") { switch (submitButton) { case "mail": var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; var random = new Random(); var result = new string( Enumerable.Repeat(chars, 8) .Select(s => s[random.Next(s.Length)]) .ToArray()); string ip = Ip(); lnUsuario.InsertarToken(result, NombreUsuario, DateTime.Now.AddHours(1), DateTime.Now, ip); Mensaje mensaje = new Mensaje(); mensaje.DeUsuarioCorreoElectronico = "*****@*****.**"; mensaje.ParaUsuarioCorreoElectronico = Convert.ToString(dsResultado.Tables[2].Rows[0]["CorreoElectronico"]); //Administrador UTP mensaje.Asunto = "Cambio de Contraseña"; mensaje.MensajeTexto = "Estimado(a):" + NombreUsuario + "\r\n\r\n" + "Es grato comunicarnos con usted para informarle que debido la confidencialidad de la información que contiene su cuenta, le hemos generado un token para que valide su información en nuestra intranet.\r\n\r\n" + "-Token: " + result + "\r\n\r\n" + Request.Url.GetLeftPart(UriPartial.Authority) + "/#Token" + "Cordialmente \r\n\r\n" + "Area de TI"; LNCorreo.EnviarCorreo(mensaje); TempData["CorreoExitoso"] = "Se envio el TOKEN a las siguientes cuentas: " + mensaje.ParaUsuarioCorreoElectronico; return(RedirectToAction("Index", "Home")); case "Ingresar": Session["Token"] = lnUsuario.ObtenerToken(NombreUsuario); int id = Convert.ToInt32(dsResultado.Tables[2].Rows[0]["IdEmpresa"]); LNEmpresaUsuario lnEmpresaUsuario = new LNEmpresaUsuario(); List <VistaEmpresaUsuario> list = lnEmpresaUsuario.ObtenerUsuariosPorIdEmpresa(id); EmpresaUsuario empresaUsuario = lnEmpresaUsuario.ObtenerPorIdEmpresaUsuario(Convert.ToInt32(list[0].IdEmpresaUsuario)); if (Session["Token"] == null || Session["Token"].ToString() != token) { TempData["TokenNoExitoso"] = "El Token no es correcto."; return(RedirectToAction("Index", "Home")); } return(Json(empresaUsuario)); default: return(null); } } TempData["TokenNoExitoso"] = "Esta funcionalidad es solo para empresas"; return(RedirectToAction("Index", "Home")); }
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("")); }
public JsonResult generarTokenUsuario(string NombreUsuario, string submitButton, string token) { String strMensaje = ""; String tipoUsuario = ""; LNUsuario lnUsuario = new LNUsuario(); DataSet dsResultado = ln.Autenticar_Usuario(NombreUsuario); if ((dsResultado != null) && dsResultado.Tables.Count > 0 && dsResultado.Tables[0].Rows.Count > 0) { tipoUsuario = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoUsuario"]); } if (String.IsNullOrEmpty(tipoUsuario)) { strMensaje = "El usuario ingresado no es válido"; } if (tipoUsuario == "USEREM") { var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; var random = new Random(); var result = new string( Enumerable.Repeat(chars, 8) .Select(s => s[random.Next(s.Length)]) .ToArray()); string ip = Ip(); lnUsuario.InsertarToken(result, NombreUsuario, DateTime.Now.AddHours(1), DateTime.Now, ip); Mensaje mensaje = new Mensaje(); mensaje.DeUsuarioCorreoElectronico = "*****@*****.**"; mensaje.ParaUsuarioCorreoElectronico = Convert.ToString(dsResultado.Tables[2].Rows[0]["CorreoElectronico"]); //Administrador UTP mensaje.Asunto = "Cambio de Contraseña"; mensaje.MensajeTexto = "Estimado(a):" + NombreUsuario + "\r\n\r\n" + "Es grato comunicarnos con usted para informarle que debido la confidencialidad de la información que contiene su cuenta, le hemos generado un token para que valide su información en nuestra intranet.\r\n\r\n" + "-Token: " + result + "\r\n\r\n" + "Cordialmente \r\n\r\n" + "Area de TI"; LNCorreo.EnviarCorreo(mensaje); //strMensaje = "Se envio el TOKEN a las siguientes cuentas: " + mensaje.ParaUsuarioCorreoElectronico; strMensaje = "El token ha sido enviado a su correo electrónico."; } if (tipoUsuario != "USEREM" && !String.IsNullOrEmpty(tipoUsuario)) { strMensaje = "Esta funcionalidad es solo para empresas"; } return(Json(strMensaje)); }
public ActionResult Registro(VistaRegistroEmpresa empresa) { LNUsuario lnUsuario = new LNUsuario(); StringBuilder mensajeDeError = new StringBuilder(); if (lnUsuario.ValidarNombreDeUsuario(empresa.CuentaUsuario)) { mensajeDeError.Append("El Nombre de Usuario ya está Registrado<br />"); } if (lnUsuario.ValidarExistenciaEmpresa(empresa.PaisIdListaValor, empresa.IdentificadorTributario)) { mensajeDeError.Append("La Empresa ya se encuentra registrada, por favor comuníquese con nosotros<br />"); } Regex rgx = new Regex(@"^\d{8}$"); if (empresa.TipoDocumentoIdListaValor == "TDDNI") { if (!rgx.IsMatch(empresa.NumeroDocumento)) { mensajeDeError.Append("El Numero de Documento es inválido<br />"); } } if (ModelState.IsValid && mensajeDeError.ToString() == "") { LNEmpresa lnEmpresa = new LNEmpresa(); //Empresa empresa.CreadoPor = empresa.CuentaUsuario; //Usuario anónimo. empresa.EstadoIdListaValor = "EMPRRV"; //Estado de la empresa pendiente de aprobación. //Ubicación empresa.EstadoLocacionIdListaValor = "LOSTNO"; //Estado NO ACTIVA. Se debe activar al momento que UTP active la cuenta. if (empresa.PaisIdListaValor == "PAIPER") { empresa.NombreLocacion = empresa.DireccionLocacion + ", " + empresa.TextDistrito + ", " + empresa.TextoCiudad + ", " + empresa.TextoDepartamento; } else { empresa.NombreLocacion = empresa.DireccionLocacion + ", " + empresa.DireccionDistritoLocacion + ", " + empresa.DireccionCiudadLocacion + ", " + empresa.DireccionDepartamentoLocacion; } //validar si el pais es peru, si es asi entonces: //Usuario empresa.RolIdListaValor = "ROLEAD"; //La cuenta es creada como Rol: "Administrador de Empresa" empresa.EstadoUsuarioIdListaValor = "USEUTP"; //El usuario también se encuenta pendiente de activación. Se debe activar al momento que UTP active la cuenta. byte[] bytes = Encoding.Default.GetBytes(empresa.Contrasena); SHA1 sha = new SHA1CryptoServiceProvider(); byte[] password = sha.ComputeHash(bytes); String spassword = Encoding.Default.GetString(password); empresa.Contrasena = spassword; lnEmpresa.Insertar(empresa); //Enviar mensaje de correo: LNMensaje lnMensaje = new LNMensaje(); DataTable dtUsuarioUTPAdmin = lnMensaje.ObtenerUsuarioAdministradorUTP(); if (dtUsuarioUTPAdmin.Rows.Count > 0) { Mensaje mensaje = new Mensaje(); mensaje.DeUsuarioCorreoElectronico = empresa.EmailUsuario; mensaje.ParaUsuarioCorreoElectronico = Convert.ToString(dtUsuarioUTPAdmin.Rows[0]["CorreoElectronico"]); //Administrador UTP mensaje.Asunto = empresa.NombreComercial + " Empresa registrada en el Portal:"; mensaje.MensajeTexto = "La empresa '" + empresa.NombreComercial + "' se ha registrado en el portal y está a la espera de activación"; LNCorreo.EnviarCorreo(mensaje); } //Si el registro fue exitoso redireccionar a página de resultado. TempData["GuardaRegistroExitoso"] = "Estimado(a) <strong>" + empresa.NombresUsuario + " " + empresa.ApellidosUsuario + "</strong>, muchas gracias por enviarnos su información. En breve recibirá un correo de confirmación con sus datos.</br></br>Nuestro proceso de activación tomará un plazo no mayor a 1 día útil, antes del cual estaremos comunicándole la activación de su Usuario. "; //Aquí debería enviarse un correo return(RedirectToAction("Index")); } else { var errors = ModelState.Select(x => x.Value.Errors) .Where(y => y.Count > 0) .ToList(); //Variable temporal para poner el break int a = 0; } LNGeneral lnGeneral = new LNGeneral(); ViewBag.PaisIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_PAIS), "IdListaValor", "Valor", empresa.PaisIdListaValor); ViewBag.SectorEmpresarial1IdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_SECTOR_EMPRESARIAL), "IdListaValor", "Valor", empresa.SectorEmpresarial1IdListaValor); ViewBag.TipoLocacionIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_LOCACION), "IdListaValor", "Valor", empresa.TipoLocacionIdListaValor); ViewBag.TipoDocumentoIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_DOCUMENTO), "IdListaValor", "Valor", empresa.TipoDocumentoIdListaValor); ViewBag.DireccionDepartamentoLocacion = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_Departamento), "IdListaValor", "Valor", empresa.DireccionDepartamentoLocacion); ViewBag.MensajeDeError = mensajeDeError; return(View(empresa)); }