public async Task CheckChanges(UserPreferences previous, ChangeCheckType type, Boolean updateBackend) { // Because this is an async function, need to debounce repeated calls which // can come from the UI controls. if (doingCheck) { return; } doingCheck = true; Boolean changed = await dataSource.CheckChanges(previous, type); if (changed) { SetLimitHeader(); if (updateBackend) { try { await WebAPI.SetUserPrefsAsync(CurrentUser, dataSource.GetCategories(CategorySet.Active)); } catch (Exception ex) { Debug.WriteLine("ConfigurationViewModel.CheckChanges, WebAPI.SetUserPrefs failed: " + ex.Message); } } } doingCheck = false; }
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); }