public async Task <RegistroStatus> RegistroUsuarioAsync(Models.Portal.RegistroViewModel model) { HttpResponse response = HttpContext.Current.Response; return(await Task.Run(async() => { using (var _dbContext = new MercampoEntities()) { var usuario = _dbContext.Usuarios.Where(u => u.email.Equals(model.Email, StringComparison.InvariantCulture)).FirstOrDefault(); if (usuario != null) { return RegistroStatus.MailOcupado; } usuario = _dbContext.Usuarios.Where(u => u.telefono.Equals(model.Celular, StringComparison.InvariantCulture)).FirstOrDefault(); if (usuario != null) { return RegistroStatus.TelefonoOcupado; } var tokenId = CrearClienteConektaId(model.Nombre, model.Apellidos, model.Email, model.Celular); string tokenSesion = getToken(); string tokenEmail = getToken(); _dbContext.Usuarios.Add(new Usuario { nombre = model.Nombre, apellidos = model.Apellidos, telefono = model.Celular, password = Hash(model.Password), email = model.Email, confirmaEmail = true, tokenSesion = tokenSesion, tokenEmail = tokenEmail, idConekta = tokenId }); _dbContext.SaveChanges(); setCookie("VendeAgroUser", tokenSesion, response); var usuarioRegistrado = _dbContext.Usuarios.Where(u => u.email == model.Email).FirstOrDefault(); string mailMensaje = "<p>Estimado {0} gracias por registrarte en mercampo.mx</p>" + "<p>Para completar tu registro y poder hacer login da click <a href=\'" + Startup.getBaseUrl() + "/Portal/ConfirmarMail?token=" + "{1}\'>AQUÍ</a></p>"; var result = await Startup.GetServicioEmail().SendAsync(string.Format(mailMensaje, model.Nombre + " " + model.Apellidos, tokenEmail), "Registro Mercampo", model.Email); return RegistroStatus.Exitoso; } })); }
public async Task <AproboAnuncioStatus> AproboAnuncioAdminAsync(string email, int idAnuncio, string tituloAnuncio) { return(await Task.Run(async() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != System.Data.ConnectionState.Open) { return AproboAnuncioStatus.Error; } var usuario = _dbContext.Usuarios.Where(u => u.email == email).FirstOrDefault(); if (usuario == null) { _dbContext.Database.Connection.Close(); return AproboAnuncioStatus.MailInexistente; } string mailMensaje = "<p>Estimado {0},</p>" + "<p>Tu anuncio " + tituloAnuncio + " ha sido aprobado y publicado. Para consultarlo, da click <a href=\'" + Startup.getBaseUrl() + "/Home/AnuncioDetalles?id=" + idAnuncio + "{1}\'>AQUÍ</a></p>"; var result = await Startup.GetServicioEmail().SendAsync(string.Format(mailMensaje, usuario.nombre, usuario.password), "Tu Anuncio ha sido Aprobado en Mercampo", usuario.email); _dbContext.Database.Connection.Close(); return AproboAnuncioStatus.MailEnviado; } })); }
public async Task <LoginStatus> LoginPortalAsync(string email, string password) { HttpResponse response = HttpContext.Current.Response; return(await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { var usuario = _dbContext.Usuarios.Where(u => u.email == email).FirstOrDefault(); if (usuario == null) { return LoginStatus.Incorrecto; } if (!usuario.confirmaEmail) { string mailMensaje = "<p>Estimado/a {0} gracias por registrarte en mercampo.mx</p>" + "<p>Para completar tu registro y poder hacer login da click <a href=\'" + Startup.getBaseUrl() + "/Portal/ConfirmarMail?token=" + "{1}\'>AQUÍ</a></p>"; var result = Startup.GetServicioEmail().SendAsync(string.Format(mailMensaje, usuario.nombre + " " + usuario.apellidos, usuario.tokenEmail), "Registro Mercampo", usuario.email); return LoginStatus.ConfirmacionMail; } if (usuario.password.CompareTo(password) != 0) { return LoginStatus.Incorrecto; } usuario.tokenSesion = getToken(); setCookie("VendeAgroUser", usuario.tokenSesion, response); _dbContext.SaveChanges(); return LoginStatus.Exitoso; } })); }