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