public void GuardarUsuario(Usuario usuario) { DataBaseModelContext db = new DataBaseModelContext(); try { db.ContextOptions.LazyLoadingEnabled = true; string tmpurl = usuario.Password; Guid g = Guid.NewGuid(); ParametroCorreo correo = db.ParametroCorreo.SingleOrDefault(s => s.IdTipoCorreo == (int)BusinessVariables.EnumTipoCorreo.AltaUsuario && s.Habilitado); usuario.ApellidoPaterno = usuario.ApellidoPaterno.ToUpper(); usuario.ApellidoMaterno = usuario.ApellidoMaterno.ToUpper(); usuario.Nombre = usuario.Nombre.ToUpper(); usuario.Password = ConfigurationManager.AppSettings["siteUrl"] + tmpurl + "?confirmacionalta=" + usuario.Id + "_" + g; usuario.UsuarioLinkPassword = new List <UsuarioLinkPassword> { new UsuarioLinkPassword { Activo = true, Link = g, Fecha = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture), IdTipoLink = (int)BusinessVariables.EnumTipoLink.Confirmacion } }; if (usuario.Id == 0) { db.Usuario.AddObject(usuario); db.SaveChanges(); } usuario.Password = ConfigurationManager.AppSettings["siteUrl"] + tmpurl + "?confirmacionalta=" + usuario.Id + "_" + g; if (correo != null) { String body = NamedFormat.Format(correo.Contenido, usuario); foreach (CorreoUsuario correoUsuario in usuario.CorreoUsuario) { BusinessCorreo.SendMail(correoUsuario.Correo, correo.TipoCorreo.Descripcion, body); } } } catch (Exception ex) { throw new Exception((ex.InnerException).Message); } finally { db.Dispose(); } }
public string EnviaCodigoVerificacionCorreo(int idUsuario, int idTipoNotificacion, int idCorreo) { DataBaseModelContext db = new DataBaseModelContext(); string result = null; try { db.ContextOptions.ProxyCreationEnabled = _proxy; Random generator = new Random(); String codigo = generator.Next(0, 99999).ToString("D5"); Guid g = Guid.NewGuid(); ParametroCorreo correo = db.ParametroCorreo.SingleOrDefault(s => s.IdTipoCorreo == (int)BusinessVariables.EnumTipoCorreo.RecuperarCuenta && s.Habilitado); if (correo != null) { string to = db.CorreoUsuario.Single(s => s.Id == idCorreo).Correo; db.LoadProperty(correo, "TipoCorreo"); Usuario usuario = db.Usuario.Single(u => u.Id == idUsuario); db.LoadProperty(usuario, "CorreoUsuario"); String body = string.Format(correo.Contenido, usuario.NombreCompleto, ConfigurationManager.AppSettings["siteUrl"] + "/FrmRecuperar.aspx?confirmacionCodigo=" + BusinessQueryString.Encrypt(idUsuario + "_" + g) + "&correo=" + BusinessQueryString.Encrypt(idCorreo.ToString()) + "&code=" + BusinessQueryString.Encrypt(codigo), codigo); BusinessCorreo.SendMail(to, correo.TipoCorreo.Descripcion, body); usuario.UsuarioLinkPassword = new List <UsuarioLinkPassword> { new UsuarioLinkPassword { Activo = true, Link = g, Fecha = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture), IdTipoLink = (int)BusinessVariables.EnumTipoLink.Reset, Codigo = codigo } }; db.SaveChanges(); result = g.ToString(); } } catch (Exception ex) { throw new Exception((ex.InnerException).Message); } finally { db.Dispose(); } return(result); }