コード例 #1
0
        public async override void OnNavigatedTo(NavigatedToEventArgs e, Dictionary <string, object> viewModelState)
        {
            base.OnNavigatedTo(e, viewModelState);
            int parentCategoryId = int.Parse(e.Parameter.ToString());
            ICollection <Category> subCategories = null;
            string errorMessage = string.Empty;

            try
            {
                subCategories = await _productCatalogRepository.GetSubcategoriesAsync(parentCategoryId, 5);
            }
            catch (Exception ex)
            {
                errorMessage = string.Format(CultureInfo.CurrentCulture, _resourceLoader.GetString("GeneralServiceErrorMessage"), Environment.NewLine, ex.Message);
            }

            if (!string.IsNullOrWhiteSpace(errorMessage))
            {
                await _alertMessageService.ShowAsync(errorMessage, _resourceLoader.GetString("ErrorServiceUnreachable"));

                return;
            }

            if (string.IsNullOrEmpty(Title))
            {
                Title = _productCatalogRepository.GetCategoryName(parentCategoryId);
            }

            var subCategoryViewModels = new List <CategoryViewModel>();

            foreach (var subCategory in subCategories)
            {
                subCategoryViewModels.Add(new CategoryViewModel(subCategory, _navigationService));
            }

            Subcategories = new ReadOnlyCollection <CategoryViewModel>(subCategoryViewModels);
        }