public async override void OnNavigatedTo(NavigatedToEventArgs e, Dictionary <string, object> viewModelState) { string errorMessage = string.Empty; try { var productNumber = e.Parameter as string; var selectedProduct = await _productCatalogRepository.GetProductAsync(productNumber); var productViewModels = (await _productCatalogRepository.GetProductsAsync(selectedProduct.SubcategoryId)) .Select(product => new ProductViewModel(product, _shoppingCartRepository, _alertService, _resourceLoader)); var items = new ReadOnlyCollection <ProductViewModel>(productViewModels.ToList()); Items = items; SelectedProduct = Items.First(p => p.ProductNumber == productNumber); SelectedIndex = items.IndexOf(SelectedProduct); Title = SelectedProduct.Title; } catch (Exception ex) { errorMessage = string.Format(CultureInfo.CurrentCulture, _resourceLoader.GetString("GeneralServiceErrorMessage"), Environment.NewLine, ex.Message); } if (!string.IsNullOrWhiteSpace(errorMessage)) { await _alertService.ShowAsync(errorMessage, _resourceLoader.GetString("ErrorServiceUnreachable")); } if (e.NavigationMode != NavigationMode.New) { base.OnNavigatedTo(e, viewModelState); } }
public async override void OnNavigatedTo(object navigationParameter, NavigationMode navigationMode, Dictionary <string, object> viewModelState) { var categoryId = Convert.ToInt32(navigationParameter); string errorMessage = string.Empty; try { var category = await _productCatalogRepository.GetCategoryAsync(categoryId); Title = category.Title; var products = await _productCatalogRepository.GetProductsAsync(categoryId); Items = new ReadOnlyCollection <ProductViewModel>(products .Select(product => new ProductViewModel(product)) .ToList()); } 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")); } }