public ActionResult State(int Id = 0, string email = "", string identidad = "", string date = "", string status = "", string ide = "", string type = "", string cultureInfo = "", Respuesta K = null) { System.Web.HttpContext.Current.Session["Usuario"] = EngineData.usuarioTemporal; Respuesta R = new Respuesta(); bool resultado = false; Guid guidCliente = Guid.Empty; string emailCode64 = string.Empty; //Validar email if (email != string.Empty && email != null) { if (Funcion.CadenaBase64Valida(email)) { email = Funcion.DecodeBase64(email); } resultado = Funcion.EmailEsValido(email); emailCode64 = Funcion.ConvertirBase64(email); if (!resultado) { if (K.RespuestaAccion != string.Empty && K.RespuestaAccion != null) { R = Funcion.RespuestaProceso(K.RespuestaAccion, emailCode64, null, email + EngineData.EmailNoValido()); } else if (type != string.Empty && type != null) { R = Funcion.RespuestaProceso("Index", emailCode64, null, email + EngineData.EmailNoValido()); } return(View(R)); } } //Validar GUID de identidad if (identidad != string.Empty && identidad != null && type != string.Empty && type != null) { if (type == EngineData.RegisterManager) { guidCliente = Metodo.ObtenerIdentidadGerente(email); } else { guidCliente = Metodo.ObtenerIdentidadCliente(email); } string identificador = Funcion.EncodeMd5(guidCliente.ToString()); resultado = Funcion.CompareString(identidad, identificador); if (!resultado) { R = Funcion.RespuestaProceso("Open", emailCode64, null, EngineData.ErrorInternoServidor()); Funcion.ConstruirSucesoLog("GUID no concuerda*Home/State*" + email, Metodo); return(View(R)); } } //validar tiempo de expiracion del link if (date != string.Empty && date != null && type != string.Empty && type != null) { date = date.Replace('*', ' '); date = date.Replace('+', ' '); date = date.Replace('a', ' '); date = date.Replace('p', ' '); date = date.Replace('m', ' '); date = date.Trim(); Funcion.SetCultureInfo(cultureInfo); //CultureInfo ci = new CultureInfo(cultureInfo); //Thread.CurrentThread.CurrentUICulture = ci; //Thread.CurrentThread.CurrentCulture = ci; DateTime fechaEnvio = Convert.ToDateTime(date); DateTime fechaActivacion = DateTime.UtcNow; resultado = Funcion.EstatusLink(fechaEnvio, fechaActivacion); if (!resultado) { if (type == EngineData.Register) { string contraseña = Metodo.ObtenerPasswordCliente(email); contraseña = contraseña.Replace(email, ""); resultado = Funcion.EnviarNuevaNotificacion(Notificacion, Metodo, email, EngineData.Register, contraseña); } else if (type == EngineData.Test) { resultado = Funcion.EnviarNuevaNotificacion(Notificacion, Metodo, email, EngineData.Test); } else if (type == EngineData.RegisterManager) { resultado = Funcion.EnviarNuevaNotificacion(Notificacion, Metodo, email, EngineData.RegisterManager); } R = Funcion.RespuestaProceso("Index", emailCode64, null, EngineData.TiempoLinkExpiro()); return(View(R)); } } //Activacion tiempo de prueba if (type == EngineData.Test) { Cliente client = Funcion.ConstruirActualizarClienteTest(Metodo, email, identidad); int act = Metodo.UpdateClienteTest(client); if (act > 0) { R = Funcion.RespuestaProceso("Contact", emailCode64, null, EngineData.ActivacionExitosa()); } else { R = Funcion.RespuestaProceso("Index", emailCode64, null, EngineData.ActivacionFallida()); } } //Activacion cuenta del cliente else if (type == EngineData.Register) { string password = ide; ActivarCliente model = new ActivarCliente(); model = Funcion.ConstruirActivarCliente(Metodo, email, password); int act = Metodo.ClienteRegistroActivacion(model); if (act >= 1) { R = Funcion.RespuestaProceso("Login", emailCode64, null, EngineData.ActivacionExitosa()); } else { R = Funcion.RespuestaProceso("Login", emailCode64, null, EngineData.ActivacionFallida()); } } // Enviar a restablecer password else if (type == EngineData.ResetPassword) { if (ide == string.Empty || ide == null) { R = Funcion.RespuestaProceso("Open", emailCode64, null, EngineData.ErrorInternoServidor()); Funcion.ConstruirSucesoLog("CODIGO restablecer password vacio*Home/State*" + email, Metodo); return(View(R)); } string codigo = Funcion.DecodeBase64(ide); string code = Metodo.ObtenerCodigoRestablecerPassword(email); resultado = Funcion.CompareString(codigo, code); if (!resultado) { R = Funcion.RespuestaProceso("Open", emailCode64, null, EngineData.ErrorInternoServidor()); Funcion.ConstruirSucesoLog("CODIGO restablecer password no coinciden*Home/State*" + email, Metodo); return(View(R)); } System.Web.HttpContext.Current.Session["Email"] = email; R = Funcion.RespuestaProceso(null, emailCode64, "codeVerify", EngineData.IngreseCodigoVerificacion()); return(RedirectToAction("EditPasswordNotify", "Home", R)); } //Resdireccionar a actualizar el perfil de administrador else if (type == EngineData.RegisterManager) { Gerente G = new Gerente(); G.Email = email; G.Id = EngineData.IdActivacion; return(RedirectToAction("Update", "Manager", G)); } if (K.RespuestaAccion != null) { return(View(K)); } return(View(R)); }