Esempio n. 1
0
        public string LogOffUser(User user)
        {
            try
            {
                TableOperation retrieve = TableOperation.Retrieve <ModeloTableUser>(user.Password, user.Email);

                TableResult result = table.Execute(retrieve);

                ModeloTableUser loggedOfUser = (ModeloTableUser)result.Result;

                loggedOfUser.Autenticado = false;

                if (result != null)
                {
                    TableOperation update = TableOperation.Replace(loggedOfUser);

                    table.Execute(update);
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }

            return("Saíste da tua conta!");
        }
Esempio n. 2
0
        public User ModelTableToUser(ModeloTableUser modeloUser)
        {
            User user = new User()
            {
                Password    = modeloUser.Password,
                Email       = modeloUser.Email,
                Nome        = modeloUser.Nome,
                Apelido     = modeloUser.Apelido,
                QuantLogins = modeloUser.QuantLogins,
                Autenticado = modeloUser.Autenticado,
                FotoUrl     = modeloUser.FotoUrl
            };

            return(user);
        }
Esempio n. 3
0
        public ModeloTableUser UserToModelTableUser(User user)
        {
            ModeloTableUser modelo = new ModeloTableUser()
            {
                PartitionKey = user.Password,
                RowKey       = user.Email,
                Nome         = user.Nome,
                Apelido      = user.Apelido,
                QuantLogins  = user.QuantLogins,
                ETag         = "*",
                Autenticado  = user.Autenticado,
                FotoUrl      = user.FotoUrl
            };

            return(modelo);
        }
Esempio n. 4
0
        public string MudarPassword(User user)
        {
            User oldUser = new User();
            User newUser = new User();

            try
            {
                //Procurar palavra passe antiga pelo email
                TableQuery <ModeloTableUser> query     = new TableQuery <ModeloTableUser>().Where(TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, user.Email));
                List <ModeloTableUser>       resultado = table.ExecuteQuery(query).ToList <ModeloTableUser>();

                if (resultado.Count == 1)
                {
                    foreach (var userDB in resultado)
                    {
                        if (userDB.RowKey == user.Email)
                        {
                            oldUser.Password    = userDB.Password;
                            oldUser.Email       = userDB.Email;
                            oldUser.Nome        = userDB.Nome;
                            oldUser.Apelido     = userDB.Apelido;
                            oldUser.FotoUrl     = userDB.FotoUrl;
                            oldUser.Autenticado = userDB.Autenticado;
                            oldUser.QuantLogins = userDB.QuantLogins;
                        }
                    }
                }

                //Com a palavra passe antiga, encontrar na tabela o registo com o email e a passantiga, e eliminar o registo
                TableOperation  retrieve     = TableOperation.Retrieve <ModeloTableUser>(oldUser.Password, oldUser.Email);
                TableResult     result       = table.Execute(retrieve);
                ModeloTableUser loggedOfUser = (ModeloTableUser)result.Result;
                if (result != null)
                {
                    TableOperation delete = TableOperation.Delete(loggedOfUser);

                    table.Execute(delete);
                }

                //Inserir mesmo user com palavra passe nova
                //CHEGA AQUI MAS NAO INSERE O USER PRETENDIDO. NAO INSERE NADA
                if (user != null)
                {
                    newUser.Nome        = oldUser.Nome;
                    newUser.Password    = user.Password;
                    newUser.Email       = oldUser.Email;
                    newUser.QuantLogins = oldUser.QuantLogins;
                    newUser.Autenticado = oldUser.Autenticado;
                    newUser.Apelido     = oldUser.Apelido;
                    newUser.FotoUrl     = oldUser.FotoUrl;
                    TableOperation insert = TableOperation.Insert(UserToModelTableUser(newUser));
                    TableResult    res    = table.Execute(insert);
                    if (res.HttpStatusCode == 204)//NO CONTENT
                    {
                        return("Nova palavra passe registada");
                    }
                    else
                    {
                        TableOperation insertIfProblem = TableOperation.Insert(UserToModelTableUser(oldUser));
                        TableResult    resProb         = table.Execute(insertIfProblem);
                        return($"{res.HttpStatusCode}: Ocorreu um erro a trocar a sua palavra passe");
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return("Ocorreu um problema ao registar a nova palavra passe");
        }