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!"); }
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); }
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); }
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"); }