public Boolean IsEqual(UserPreferences other) { if (other == null) { return(false); } return(this.UserID == other.UserID && this.AccessToken == other.AccessToken && this.ProviderName == other.ProviderName && this.ProviderUri == other.ProviderUri && this.ConversationLimit == other.ConversationLimit && this.ActiveCategories == other.ActiveCategories); }
public async Task <Boolean> CheckChanges(UserPreferences previous, ChangeCheckType type) { if ((type & ChangeCheckType.CategorySelection) == ChangeCheckType.CategorySelection) { // Update category status in the database foreach (Category c in categories) { await DataAccessLayer.Current.UpdateOrAddCategoryAsync(c, CategoryKeepActive.Force); } // Update the UserPreferences CurrentUser.ActiveCategories = GetCategoryList(CategorySet.Active); await CurrentUser.Save(); } HasChanged = !CurrentUser.IsEqual(previous); return(HasChanged); }
public async Task SetUserPreferencesAsync(UserPreferences prefs) { UserPreferences current = await GetUserPreferencesAsync(); if (current == null) { await database.InsertAsync(prefs); } else { String query = "update UserPreferences set UserID='" + prefs.UserID + "' "; query += ", AccessToken='" + prefs.AccessToken + "' "; query += ", ProviderName='" + prefs.ProviderName + "' "; query += ", ProviderUri='" + prefs.ProviderUri + "' "; query += ", ConversationLimit='" + prefs.ConversationLimit + "' "; query += ", ActiveCategories='" + prefs.ActiveCategories + "'"; await database.QueryAsync <UserPreferences>(query); } }
public async Task InitAsync() { categories = new CategoryList(); await PopulateCategoriesFromDB(); providers = new List <AuthProvider>(); await PopulateAuthProvidersFromDB(); // The access token in the user preferences determines authentication status, as that token // is used automatically in the HTTP request message hander. Nothing else is needed to // authenticate on startup. CurrentUser = await DataAccessLayer.Current.GetUserPreferencesAsync(); if (CurrentUser == null) { CurrentUser = new UserPreferences(); CurrentUser.ActiveCategories = GetCategoryList(CategorySet.Active); } // We could call ApplyBackendConfiguration here, but we will let the consumer of // this data model do that when it wants. (See HomeViewModel.cs.) }