private async void InitCategories(string initialCategoryId) { List <string> availableCategories = null; /*if (_modelId != 0) * { * try * { * var response = await ServerApiHelper.ProductCategoriesByCarModelModificationAsync( * new EkKioskProductCategoriesByCarModelModificationGetRequest() * { * FullModelName = EkSettingsHelper.GetModelFullNameByModelId(_modelId.ToString()), * }, * CancellationToken.None); * availableCategories = response.CategoriesIds.Select(x => x.ToString()).ToList(); * } * catch(Exception) * { * } * }*/ // free UI thread await ThreadHelper.RunInBackgroundThreadAsync(() => { // build categories var rootCategories = EkSettingsHelper.GetEuropeCategories().Where(x => availableCategories == null || availableCategories.Contains(x.CategoryId)).ToArray(); if (rootCategories == null || rootCategories.Length == 0) { return(Task.CompletedTask); } BuildCategories(null, null, rootCategories, availableCategories);; Category selectedCategory = null; if (initialCategoryId != null) { selectedCategory = _allCategories.GetValueOrDefault(initialCategoryId); // if initial category is leaf then change category if (selectedCategory != null && !selectedCategory.IsGroup) { ChangeCategory(selectedCategory); return(Task.CompletedTask); } } if (selectedCategory == null) { selectedCategory = _allCategories.GetValueOrDefault(rootCategories[0].CategoryId); } SelectCategory(selectedCategory); return(Task.CompletedTask); }); }
private async void InitCategories(string initialCategoryId) { // free UI thread await ThreadHelper.RunInBackgroundThreadAsync(() => { // build categories var rootCategories = EkSettingsHelper.GetEuropeCategories(); if (rootCategories == null || rootCategories.Length == 0) { return(Task.CompletedTask); } BuildCategories(null, rootCategories); Category selectedCategory = null; if (initialCategoryId != null) { selectedCategory = _allCategories.GetValueOrDefault(initialCategoryId); // if initial category is leaf then change category if (selectedCategory != null && !selectedCategory.IsGroup) { ChangeCategory(selectedCategory); return(Task.CompletedTask); } } if (selectedCategory == null) { selectedCategory = _allCategories.GetValueOrDefault(rootCategories[0].CategoryId); } SelectCategory(selectedCategory); return(Task.CompletedTask); }); }