示例#1
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));
        }
示例#2
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);
            }
        }
示例#3
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();
        }
示例#4
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);
        }
示例#5
0
        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);
        }
        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);
        }
示例#7
0
        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");
                });
            }
        }
        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);
        }
示例#9
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);
        }
示例#10
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);
        }
示例#11
0
        public App(ICardInterfaceManger contactCardInterfaceManger, ICardInterfaceManger contactlessCardInterfaceManger, IOnlineApprover onlineApprover, IConfigurationProvider configProvider, TCPClientStream tcpClientStream)
        {
            InitializeComponent();

            MainPage = new HomeMasterDetailView(contactCardInterfaceManger, contactlessCardInterfaceManger, onlineApprover, configProvider, tcpClientStream);
        }