Esempio n. 1
0
        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;
                }
            }));
        }
Esempio n. 2
0
        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;
                }
            }));
        }
Esempio n. 3
0
        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;
                }
            }));
        }