コード例 #1
0
ファイル: Model.cs プロジェクト: ste10k41/Altostratus
        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);
        }
コード例 #2
0
ファイル: Model.cs プロジェクト: ste10k41/Altostratus
        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);
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
ファイル: Model.cs プロジェクト: ste10k41/Altostratus
        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.)
        }