protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            inspectedCard = e.Parameter as TransitCard.TransitCard;

            if (inspectedCard == null)
                return;

            CardTypeTB.Text = inspectedCard.Name;
            CardSerialTB.Text = inspectedCard.SerialNumber;
            CardBalanceTB.Text = inspectedCard.Balance;

            base.OnNavigatedTo(e);
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            inspectedCard = e.Parameter as TransitCard.TransitCard;

            if (inspectedCard == null)
            {
                return;
            }

            CardTypeTB.Text    = inspectedCard.Name;
            CardSerialTB.Text  = inspectedCard.SerialNumber;
            CardBalanceTB.Text = inspectedCard.Balance;

            base.OnNavigatedTo(e);
        }
Exemple #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private async void cardEV_Tap(SmartCardReader sender, CardAddedEventArgs args)
        {
            CardStatus = ScanningStatus.CardScanning;
            try
            {
                System.Diagnostics.Debug.WriteLine("Got card tap event.");
                // woooot
                using (SmartCardConnection connection = await args.SmartCard.ConnectAsync())
                {
                    // figure out what kind of card this is.
                    IccDetection cardIdentification = new IccDetection(args.SmartCard, connection);
                    await cardIdentification.DetectCardTypeAync();

                    System.Diagnostics.Debug.WriteLine("FOUND CARD");
                    System.Diagnostics.Debug.WriteLine(cardIdentification.PcscDeviceClass.ToString());
                    if (cardIdentification.PcscDeviceClass == Pcsc.Common.DeviceClass.MifareDesfire)
                    {
                        Pcsc.Desfire.AccessHandler       desfireAccess = new Pcsc.Desfire.AccessHandler(connection);
                        PhysicalCard.Desfire.DesfireCard _card         = await ZaibatsuPass.PhysicalCard.Desfire.DesfireCard.SnapshotAsync(desfireAccess);

                        var ignored = Dispatcher.RunAsync(
                            Windows.UI.Core.CoreDispatcherPriority.Normal,
                            () => {
                            // try to parse the card
                            tCard = _card;
                            TransitCard.TransitCard parsedCard = TransitCard.TransitCardParser.parseTransitCard(tCard);
                            if (parsedCard == null)
                            {
                                CardStatus = ScanningStatus.ScanningFailure;
                            }
                            else
                            {
                                (Window.Current.Content as Frame).Navigate(typeof(DetailsPage), parsedCard);
                            }
                        });
                        CardStatus = ScanningStatus.ScanningSuccess;
                    }
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(" ** OOPS: " + e.ToString());
                CardStatus = ScanningStatus.ScanningFailure;
            }
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            inspectedCard = e.Parameter as TransitCard.TransitCard;

            if (inspectedCard == null)
            {
                return;
            }

            // There are certain cards which are "Stub" cards
            // These cards just don't have any information
            if (inspectedCard.isStub)
            {
                infoPivot.Items.Remove(pi_Balance);
                infoPivot.Items.Remove(pi_Events);
                infoPivot.Items.Remove(pi_Extras);
            }
            else
            {
                infoPivot.Items.Remove(pi_stub);
                if (!inspectedCard.hasEvents)
                {
                    infoPivot.Items.Remove(pi_Events);
                }
                if (!inspectedCard.hasExtras)
                {
                    infoPivot.Items.Remove(pi_Extras);
                }
            }

            // As a result of being bound through x:bind, I need this.
            // Blaaah
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("inspectedCard.Events"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("inspectedCard.Name"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("inspectedCard.SerialNumber"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("inspectedCard.Balance"));


            base.OnNavigatedTo(e);
        }