public void ItemScannedAction(QrMessage message)
        {
            try
            {
                var qrId = message.ParseQrCode();

                var activeScanningMethod = appStorage.GetScanningAction();

                if (activeScanningMethod == ScanningAction.RelocateItem)
                {
                    Boolean done = false;
                    Device.BeginInvokeOnMainThread(async() =>
                    {
                        await NavigateFromMenu((int)MenuItemType.RelocateItems);
                        done = true;
                    });
                    while (!done)
                    {
                        // Wait for the navigate to complete.
                    }
                }
                if (Detail.GetType() == typeof(NavigationPage))
                {
                    var currentPage = ((NavigationPage)Detail).CurrentPage;
                    if (currentPage.GetType() == typeof(UpdateMdAssignedItemPage))
                    {
                        ((UpdateMdAssignedItemPage)currentPage).UpdatedScannedItem(qrId);
                        return;
                    }

                    var root = ((NavigationPage)Detail).RootPage;
                    if (root.GetType() == typeof(MultiItemUpdatePage))
                    {
                        ((MultiItemUpdatePage)root).AddQrId(qrId);
                        return;
                    }
                }


                var detailsModel = new ItemDetailViewModel();
                detailsModel.loadFromQrId(qrId);
                var detailsPage = ItemDetailPage.CreateItemDetailPage(detailsModel);
                var newPage     = new NavigationPage(detailsPage);
                Device.BeginInvokeOnMainThread(async() =>
                {
                    await NavigateToNewPageFromApp(newPage);
                });
            }
            catch (Exception ex)
            {
                var exMessage = CdbApiFactory.ParseApiException(ex);
                Debug.WriteLine(exMessage);
                Device.BeginInvokeOnMainThread(async() =>
                {
                    await DisplayAlert(exMessage.SimpleName, exMessage.Message, "OK");
                });
            }
        }
示例#2
0
        async void OnItemSelected(object sender, SelectedItemChangedEventArgs args)
        {
            var item = args.SelectedItem as ItemDetailViewModel;

            if (item == null)
            {
                return;
            }

            // Load the latest version of the item.
            int?itemId  = item.Item.Id;
            var itemObj = itemApi.GetItemById(itemId);
            var newItem = new ItemDetailViewModel(itemObj);

            var detailPage = ItemDetailPage.CreateItemDetailPage(newItem);
            await Navigation.PushAsync(detailPage);

            // Manually deselect item.
            ItemsListView.SelectedItem = null;
        }