Ejemplo n.º 1
0
        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);
            });
        }