コード例 #1
0
 public SettingsView(ICardInterfaceManger cardInterfaceManger)
 {
     InitializeComponent();
     this.cardInterfaceManger = cardInterfaceManger;
     gridProgress.IsVisible   = true;
     try
     {
         Task.Run(async() =>
         {
             ObservableCollection <string> ids = await cardInterfaceManger.GetCardReaders();
             UpdateView(ids);
         });
     }
     catch (Exception ex)
     {
         Task.Run(async() =>
         {
             await App.Current.MainPage.DisplayAlert("Error", ex.Message, "OK");
         });
     }
     finally
     {
         gridProgress.IsVisible = false;
     }
 }
コード例 #2
0
 public CardQProcessor(ICardInterfaceManger cardInterfaceManger, string deviceId)
 {
     this.deviceId = deviceId;
     cancellationTokenForCardInterfaceManager = new CancellationTokenSource();
     CardQ = new CardQ(1000);
     CardInterfaceManger = cardInterfaceManger;
 }
コード例 #3
0
        public TerminalMain(ICardInterfaceManger cardInterfaceManger, IOnlineApprover onlineApprover, IConfigurationProvider configProvider, TCPClientStream tcpClientStream)
        {
            InitializeComponent();

            Children.Add(new EMVMain(cardInterfaceManger, onlineApprover, configProvider, tcpClientStream));
            Children.Add(new DesFireMain(cardInterfaceManger));
        }
コード例 #4
0
 public SettingsView(ICardInterfaceManger contactCardInterfaceManger, ICardInterfaceManger contactlessCardInterfaceManger)
 {
     InitializeComponent();
     this.contactCardInterfaceManger     = contactCardInterfaceManger;
     this.contactlessCardInterfaceManger = contactlessCardInterfaceManger;
     gridProgress.IsVisible = true;
     try
     {
         Task.Run(async() =>
         {
             ObservableCollection <string> contactIds     = new ObservableCollection <string>();
             ObservableCollection <string> contactlessIds = new ObservableCollection <string>();
             if (contactCardInterfaceManger != null)
             {
                 contactIds = await contactCardInterfaceManger.GetCardReaders();
             }
             if (contactlessCardInterfaceManger != null)
             {
                 contactlessIds = await contactlessCardInterfaceManger.GetCardReaders();
             }
             UpdateView(contactIds, contactlessIds);
         });
     }
     catch (Exception ex)
     {
         Task.Run(async() =>
         {
             await App.Current.MainPage.DisplayAlert("Error", ex.Message, "OK");
         });
     }
     finally
     {
         gridProgress.IsVisible = false;
     }
 }
コード例 #5
0
        public void Init(ICardInterfaceManger contactCardInterfaceManger, string contactDeviceId,
                         ICardInterfaceManger contactlessCardInterfaceManger, string contactlessDeviceId,
                         QRCodeMode qrCodeMode, string accountNumberInUse,
                         IConfigurationProvider configProvider, IOnlineApprover onlineContactEMVApprover,
                         TCPClientStream tcpClientStream, TransactionRequest tr = null)
        {
            qrCodeScanned = false;

            this.contactDeviceId                = contactDeviceId;
            this.contactlessDeviceId            = contactlessDeviceId;
            this.qrCodeMode                     = qrCodeMode;
            this.contactCardInterfaceManger     = contactCardInterfaceManger;
            this.contactlessCardInterfaceManger = contactlessCardInterfaceManger;
            this.configProvider                 = configProvider;
            this.onlineContactEMVApprover       = onlineContactEMVApprover;
            this.tcpClientStream                = tcpClientStream;
            this.accountNumberInUse             = accountNumberInUse;

            if (tr != null)
            {
                this.tr           = tr;
                totalAmount.Total = Convert.ToString(tr.GetAmountAuthorized_9F02());
                Start();
            }
            else
            {
                UpdateView(ViewState.Step1TransactDetails);
            }
        }
コード例 #6
0
ファイル: TestView.xaml.cs プロジェクト: wangganggithub/dcemv
        public TestView(ICardInterfaceManger cardInterfaceManger)
        {
            InitializeComponent();
            this.cardInterfaceManger = cardInterfaceManger;
            gridProgress.IsVisible   = false;

            txtAppletAID.Text = "A000000050010101";
        }
コード例 #7
0
        public AppsView(ICardInterfaceManger cardInterfaceManger)
        {
            InitializeComponent();
            this.cardInterfaceManger = cardInterfaceManger;
            gridProgress.IsVisible   = false;
            lstApps.ItemsSource      = list;

            gridMain.BindingContext = SessionSingleton.Instance;
        }
コード例 #8
0
        public XMLPersoView(ICardInterfaceManger cardInterfaceManger)
        {
            InitializeComponent();
            this.cardInterfaceManger = cardInterfaceManger;
            gridProgress.IsVisible   = false;

            txtXMLPath.Text = @"PersoEMV.xml";

            gridMain.BindingContext = SessionSingleton.Instance;
        }
コード例 #9
0
        public InstallCapView(ICardInterfaceManger cardInterfaceManger)
        {
            InitializeComponent();
            this.cardInterfaceManger = cardInterfaceManger;
            gridProgress.IsVisible   = false;

            gridMain.BindingContext = SessionSingleton.Instance;

            txtCapFilePath.Text = "DCEMVCard.cap";
            //txtCapFilePath.Text = "DCEMVPPSE.cap";
        }
コード例 #10
0
        public HomeMDView(ICardInterfaceManger cardInterfaceManger)
        {
            InitializeComponent();

            this.cardInterfaceManger = cardInterfaceManger;

            masterPage.ListViewOthers.ItemSelected += OnItemSelected;

            if (Device.RuntimePlatform == Device.UWP)
            {
                MasterBehavior = MasterBehavior.Popover;
            }
        }
コード例 #11
0
        public TransactViewDesfire(FlowType flowType, ICardInterfaceManger cardInterfaceManger)
        {
            InitializeComponent();
            totalAmount            = new TotalAmountViewModel();
            gridProgress.IsVisible = false;

            this.cardInterfaceManger = cardInterfaceManger;
            this.flowType            = flowType;

            lblTotal.BindingContext  = totalAmount;
            txtAmount.BindingContext = totalAmount;

            UpdateView(ViewState.Step1TransactDetails);
        }
コード例 #12
0
        public InstallAllView(ICardInterfaceManger cardInterfaceManger)
        {
            InitializeComponent();
            this.cardInterfaceManger = cardInterfaceManger;
            gridProgress.IsVisible   = false;

            gridMain.BindingContext = SessionSingleton.Instance;
            //"A000000050", "A0000000500101", "A000000050010101"
            //"A000000060", "A0000000600101", "325041592E5359532E4444463031"
            txtPackageAID.Text          = "A000000050";
            txtExecutableModuleAID.Text = "A0000000500101";
            txtAppletAID.Text           = "A000000050010101";
            txtCapFilePath.Text         = "EMVCard.cap";
        }
コード例 #13
0
        public EMVMain(ICardInterfaceManger cardInterfaceManger, IOnlineApprover onlineApprover, IConfigurationProvider configProvider, TCPClientStream tcpClientStream)
        {
            InitializeComponent();

            dlgPin.IsVisible         = false;
            this.cardInterfaceManger = cardInterfaceManger;
            this.onlineApprover      = onlineApprover;
            this.tcpClientStream     = tcpClientStream;
            this.configProvider      = configProvider;
            transactionVM            = new TransactionVM {
                Amount = 1000
            };
            gridMain.BindingContext         = transactionVM;
            cmbTransactionType.SelectedItem = transactionVM.TransactionTypes.First();
        }
コード例 #14
0
        public POSTransactView(ICardInterfaceManger cardInterfaceManger, int amount, List <POSTransactionItem> posTransactionItems, IConfigurationProvider configProvider)
        {
            InitializeComponent();
            gridProgress.IsVisible = false;
            this.configProvider    = configProvider;
            totalAmount            = new TotalAmountViewModel();

            this.posTransactionItems = posTransactionItems;
            this.cardInterfaceManger = cardInterfaceManger;

            lblTotal.BindingContext = totalAmount;
            totalAmount.Total       = Validate.CentsToAmount(amount);

            StartCardScanner();
            UpdateView(ViewState.Step2TapCard);
        }
コード例 #15
0
        public TopUpView(ICardInterfaceManger contactCardInterfaceManger, ICardInterfaceManger contactlessCardInterfaceManger, IConfigurationProvider configProvider, IOnlineApprover onlineApprover, TCPClientStream tcpClientStream)
        {
            InitializeComponent();

            this.onlineApprover    = onlineApprover;
            gridProgress.IsVisible = false;

            emvTxCtl.Init(contactCardInterfaceManger, SessionSingleton.ContactDeviceId,
                          contactlessCardInterfaceManger, SessionSingleton.ContactlessDeviceId,
                          QRCodeMode.None, SessionSingleton.Account.AccountNumberId,
                          configProvider, onlineApprover, tcpClientStream);
            emvTxCtl.TxCompleted += EmvTxCtl_TxCompleted;
            emvTxCtl.SetASkAmountInstruction("Enter the amount below that you wish to top up with.");
            emvTxCtl.SetTxStartLabel("Please Tap the Visa or MasterCard card you wish to make the TopUp payment with.");
            UpdateView(ViewState.StepTxCtl);
        }
コード例 #16
0
ファイル: EMVTx.xaml.cs プロジェクト: wangganggithub/dcemv
        public EMVTx(ICardInterfaceManger contactCardInterfaceManger,
                     ICardInterfaceManger contactlessCardInterfaceManger,
                     IConfigurationProvider configProvider, IOnlineApprover onlineApprover, TCPClientStream tcpClientStream)
        {
            InitializeComponent();
            gridProgress.IsVisible = false;

            this.onlineApprover = onlineApprover;

            emvTxCtl.Init(contactCardInterfaceManger, SessionSingleton.ContactDeviceId,
                          contactlessCardInterfaceManger, SessionSingleton.ContactlessDeviceId,
                          QRCodeMode.ScanAndProcess, "",
                          configProvider, onlineApprover, tcpClientStream);

            emvTxCtl.TxCompleted += EmvTxCtl_TxCompleted;
            UpdateView(ViewState.StepTxCtl);
        }
コード例 #17
0
ファイル: POSView.xaml.cs プロジェクト: wangganggithub/dcemv
        public POSView(ICardInterfaceManger contactCardInterfaceManger, ICardInterfaceManger contactlessCardInterfaceManger, IConfigurationProvider configProvider, IOnlineApprover onlineApprover, TCPClientStream tcpClientStream)
        {
            InitializeComponent();

            this.contactCardInterfaceManger     = contactCardInterfaceManger;
            this.contactlessCardInterfaceManger = contactlessCardInterfaceManger;
            this.configProvider  = configProvider;
            this.onlineApprover  = onlineApprover;
            this.tcpClientStream = tcpClientStream;

            emvTxCtl.TxCompleted += EmvTxCtl_TxCompleted;

            UpdateView(POSViewState.POS);

            basketItems             = new ObservableCollection <POSTransactionLineItem>();
            totalAmount             = new TotalAmountViewModel();
            lblTotal.BindingContext = totalAmount;

            try
            {
                Task.Run(async() =>
                {
                    groups = await CacheProvider.Instance.GetInventoryGroups();
                    items  = await CacheProvider.Instance.GetinventoryItems();
                })
                .ContinueWith((x) =>
                {
                    UpdataItemNavigator();
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        if (lstBasketItems.ItemsSource == null)
                        {
                            lstBasketItems.ItemsSource = basketItems;
                        }
                        gridProgress.IsVisible = false;
                    });
                }, TaskContinuationOptions.OnlyOnRanToCompletion);
            }
            catch (Exception ex)
            {
                Task.Run(async() =>
                {
                    await App.Current.MainPage.DisplayAlert("Error", ex.Message, "OK");
                });
            }
        }
コード例 #18
0
        public CardAdminView(ICardInterfaceManger contactCardInterfaceManger, ICardInterfaceManger contactlessCardInterfaceManger, IConfigurationProvider configProvider, IOnlineApprover onlineApprover, TCPClientStream tcpClientStream)
        {
            InitializeComponent();

            this.contactCardInterfaceManger     = contactCardInterfaceManger;
            this.contactlessCardInterfaceManger = contactlessCardInterfaceManger;
            this.configProvider  = configProvider;
            this.onlineApprover  = onlineApprover;
            this.tcpClientStream = tcpClientStream;

            emvTxCtl.TxCompleted += EmvTxCtl_TxCompleted;

            gridProgress.IsVisible   = false;
            viewCardList.ItemsSource = SessionSingleton.Account.Cards;

            UpdateView(CardAdminViewState.CardList);
        }
コード例 #19
0
        public EMVQRCodeView(ICardInterfaceManger contactCardInterfaceManger,
                             ICardInterfaceManger contactlessCardInterfaceManger,
                             IConfigurationProvider configProvider, IOnlineApprover onlineApprover, TCPClientStream tcpClientStream)
        {
            InitializeComponent();

            this.contactCardInterfaceManger     = contactCardInterfaceManger;
            this.contactlessCardInterfaceManger = contactlessCardInterfaceManger;
            this.configProvider  = configProvider;
            this.onlineApprover  = onlineApprover;
            this.tcpClientStream = tcpClientStream;

            emvTxCtl.TxCompleted += EmvTxCtl_TxCompleted;

            emvTxCtl.Init(contactCardInterfaceManger, SessionSingleton.ContactDeviceId,
                          contactlessCardInterfaceManger, SessionSingleton.ContactlessDeviceId,
                          QRCodeMode.PresentAndPoll, "5906374433f04eb5b67d25c3e50487dc",
                          configProvider, onlineApprover, tcpClientStream);
        }
コード例 #20
0
        public HomeMasterDetailView(ICardInterfaceManger contactCardInterfaceManger, ICardInterfaceManger contactlessCardInterfaceManger, IOnlineApprover onlineApprover, IConfigurationProvider configProvider, TCPClientStream tcpClientStream)
        {
            InitializeComponent();

            this.contactlessCardInterfaceManger = contactlessCardInterfaceManger;
            this.contactCardInterfaceManger     = contactCardInterfaceManger;
            this.onlineApprover  = onlineApprover;
            this.configProvider  = configProvider;
            this.tcpClientStream = tcpClientStream;

            masterPage.ListViewTransact.ItemSelected += OnItemSelected;
            masterPage.ListViewOthers.ItemSelected   += OnItemSelected;

            //if (Device.RuntimePlatform == Device.UWP)
            //{
            MasterBehavior = MasterBehavior.Popover;
            //}

            (masterPage as HomeMasterView).SetWait(false);
        }
コード例 #21
0
        public TransactView(FlowType flowType, ICardInterfaceManger contactCardInterfaceManger, ICardInterfaceManger contactlessCardInterfaceManger, IConfigurationProvider configProvider, IOnlineApprover onlineApprover, TCPClientStream tcpClientStream)
        {
            InitializeComponent();

            this.onlineApprover = onlineApprover;
            this.flowType       = flowType;

            QRCodeMode mode = QRCodeMode.None;

            switch (flowType)
            {
            case FlowType.SendMoneyFromCardToApp:
                mode = QRCodeMode.PresentAndPoll;
                emvTxCtl.SetHeaderInstruction("Send money from their card to your account");
                emvTxCtl.SetTxStartLabel("Send money from their card to your account");
                this.Title = "Receive Money";
                break;

            case FlowType.SendMoneyFromAppToCard:
                mode = QRCodeMode.ScanAndProcess;
                emvTxCtl.SetHeaderInstruction("Send money from your account to their card");
                emvTxCtl.SetTxStartLabel("Send money from your account to their card");
                this.Title = "Send Money";
                break;
            }

            emvTxCtl.Init(contactCardInterfaceManger, SessionSingleton.ContactDeviceId,
                          contactlessCardInterfaceManger, SessionSingleton.ContactlessDeviceId,
                          mode, SessionSingleton.Account.AccountNumberId,
                          configProvider, onlineApprover, tcpClientStream);

            emvTxCtl.TxCompleted += EmvTxCtl_TxCompleted;

            gridProgress.IsVisible = false;

            UpdateView(ViewState.StepTxCtl);
        }
コード例 #22
0
ファイル: App.xaml.cs プロジェクト: wangganggithub/dcemv
        public App(ICardInterfaceManger contactCardInterfaceManger, ICardInterfaceManger contactlessCardInterfaceManger, IOnlineApprover onlineApprover, IConfigurationProvider configProvider, TCPClientStream tcpClientStream)
        {
            InitializeComponent();

            MainPage = new HomeMasterDetailView(contactCardInterfaceManger, contactlessCardInterfaceManger, onlineApprover, configProvider, tcpClientStream);
        }
コード例 #23
0
        public DesFireMain(ICardInterfaceManger cardInterfaceManger)
        {
            InitializeComponent();

            this.cardInterfaceManger = cardInterfaceManger;
        }
コード例 #24
0
ファイル: App.xaml.cs プロジェクト: wangganggithub/dcemv
        public App(ICardInterfaceManger cardInterfaceManger)
        {
            InitializeComponent();

            MainPage = new HomeMDView(cardInterfaceManger);
        }
コード例 #25
0
 public CardDataView(ICardInterfaceManger cardInterfaceManger)
 {
     InitializeComponent();
     this.cardInterfaceManger = cardInterfaceManger;
     gridProgress.IsVisible   = false;
 }