public override FrameworkElement LoadXaml(IDeviceAgent devices, KioskState state, TransactionContextBase transactionContext)
        {
            FrameworkElement viewGrid = base.LoadXaml(devices, state, transactionContext);

            action = null;
            //this.TransactionContext.CardPaymentCycleInProgress = false;
            Devices.GetCardReader().SwipeCardEvent += OnSwipeCardEvent;
            Devices.GetCardReader().PaymentConfirmationEvent += OnPaymentConfirmationEvent;
            Devices.GetCardReader().PaymentFailedEvent += OnPaymentFailedEvent;
            Devices.GetCardReader().PaymentConfirmedEvent += OnPaymentConfirmedEvent;
            Devices.GetCardReader().ReceiptEvent += OnReceiptNotifiedEvent;
            Devices.GetCardReader().CardInValid += OnCardInvalid;

            //This Line is commented to disable multiple payments in the transaction
            //Devices.GetCardReader().PaymentAsync(Convert.ToDouble(this.TransactionContext.PaymentAmount));

            using (FileStream stream = new FileStream(@"app001.log", FileMode.Append, FileAccess.Write))
            {
                StreamWriter writer = new StreamWriter(stream);
                writer.WriteLine(string.Format("{0} : State : {1} : Load Xaml Ended", DateTime.Now, this.State.XamlPath));
                writer.Flush();
                writer.Close();
            }

            return viewGrid;
        }
 public override FrameworkElement LoadXaml(IDeviceAgent devices, KioskState state, TransactionContextBase transactionContext)
 {
     FrameworkElement viewGrid = base.LoadXaml(devices, state, transactionContext);
     DGetFee getFee = new DGetFee(this.GetFee);
     getFee.BeginInvoke(null, null);
     return viewGrid;
 }
 public override FrameworkElement LoadXaml(IDeviceAgent devices, KioskState state, Infrastructure.ObjectModel.TransactionContextBase transactionContext)
 {
     FrameworkElement viewGrid = base.LoadXaml(devices, state, transactionContext);
     DProcessPayment doPayment = new DProcessPayment(this.DoPayment);
     Devices.GetCashAcceptor().NoteStackedEvent += OnNoteStackedEvent;
     doPayment.BeginInvoke(null, null);
     return viewGrid;
 }
 public override FrameworkElement LoadXaml(IDeviceAgent devices, KioskState state, TransactionContextBase transactionContext)
 {
     timer = new DispatcherTimer();
     FrameworkElement viewGrid = base.LoadXaml(devices, state, transactionContext);
     timer.Tick += OnTimeOut;
     timer.Interval = new TimeSpan(0, 0, state.IdleTimeOut);
     timer.Start();
     return viewGrid;
 }
 public override FrameworkElement LoadXaml(IDeviceAgent devices, KioskState state, TransactionContextBase transactionContext)
 {
     FrameworkElement viewGrid = base.LoadXaml(devices, state, transactionContext);
     action = null;
     dblerrUnknown = 0;
     //this.Transaction.CardPaymentCycleInProgress = false;
     Devices.GetCardReader().SwipeCardEvent += OnSwipeCardEvent;
     Devices.GetCardReader().PaymentConfirmationEvent += OnPaymentConfirmationEvent;
     Devices.GetCardReader().PaymentFailedEvent += OnPaymentFailedEvent;
     Devices.GetCardReader().PaymentConfirmedEvent += OnPaymentConfirmedEvent;
     Devices.GetCardReader().ReceiptEvent += OnReceiptNotifiedEvent;
     Devices.GetCardReader().CardInValid += OnCardInvalid;
     Devices.GetCardReader().PaymentAsync(Convert.ToDouble(this.Transaction.AppliedFeeAmount));
     return viewGrid;
 }
        public override FrameworkElement LoadXaml(IDeviceAgent devices, KioskState state, TransactionContextBase transactionContext)
        {
            if (log.IsInfoEnabled) log.InfoFormat("{0} :  Load Xaml Started", DateTime.Now);
            dblerrUnknown = 0;
            FrameworkElement viewGrid = base.LoadXaml(devices, state, transactionContext);

            action = null;
            //this.TransactionContext.CardPaymentCycleInProgress = false;
            Devices.GetCardReader().SwipeCardEvent += OnSwipeCardEvent;
            Devices.GetCardReader().PaymentConfirmationEvent += OnPaymentConfirmationEvent;
            Devices.GetCardReader().PaymentFailedEvent += OnPaymentFailedEvent;
            Devices.GetCardReader().PaymentConfirmedEvent += OnPaymentConfirmedEvent;
            Devices.GetCardReader().ReceiptEvent += OnReceiptNotifiedEvent;
            Devices.GetCardReader().CardInValid += OnCardInvalid;
            Devices.GetCardReader().PaymentAsync(Convert.ToDouble(this.TransactionContext.AppliedFeeAmount));
            TransactionContext.Message = string.Empty;
            return viewGrid;
        }
 public override FrameworkElement LoadXaml(IDeviceAgent devices, KioskState state, TransactionContextBase transactionContext)
 {
     FrameworkElement viewGrid = base.LoadXaml(devices, state, transactionContext);
     this.Transaction.PaymentAmount = string.Empty;
     return viewGrid;
 }
 public MawaqifModule(IDeviceAgent deviceAgent, string configPath)
     : base(deviceAgent)
 {
     this.ConfigPath = configPath;
 }
 public virtual FrameworkElement LoadXaml(IDeviceAgent devices, KioskState state, TransactionContextBase transactionContext)
 {
     Trace.WriteLine(string.Format("{0} - Infrastructure PresenterBase loadxaml started for {0}..", DateTime.Now,state.Name));
     Devices = devices;
     FrameworkElement viewGrid = base.LoadXaml(state, transactionContext);
     RestartStateTimer();
     Trace.WriteLine(string.Format("{0} - Infrastructure PresenterBase loadxaml ended for {0}..", DateTime.Now, state.Name));
     return viewGrid;
 }
        public override FrameworkElement LoadXaml(IDeviceAgent devices, KioskState state, TransactionContextBase transactionContext)
        {
            using (FileStream stream = new FileStream(@"app001.log", FileMode.Append, FileAccess.Write))
            {
                StreamWriter writer = new StreamWriter(stream);
                writer.WriteLine(string.Format("{0} - Mawaqif Receipt LoadXaml Started", DateTime.Now));
                writer.Flush();
                writer.Close();
            }

            timer = new DispatcherTimer();

            FrameworkElement viewGrid = base.LoadXaml(devices, state, transactionContext);
            ReceiptPresenterBase<MawaqifTransaction> presenter = new ReceiptPresenterBase<MawaqifTransaction>(this.Transaction);
            isPrintRequestSent = false;

            if (this.Transaction.PostingFailed)
                this.State.ViewContentKey = "transactioncomplete_postingfailedtext";
            else
                if (Transaction.TransactionFailed)
                    this.State.ViewContentKey = "mawaqif_txt_pct_transaction_failed";
                else
                    this.State.ViewContentKey = "transactioncomplete_completionetext";

            if (string.Compare(this.Transaction.SelectedLanguageKey, "arabic", StringComparison.OrdinalIgnoreCase) == 0)
            {
                //receiptElement = presenter.LoadReceiptXaml(@"modules/mawaqif/pages/receipts/mawaqifreceipt_ar.xaml");
                if (!Transaction.CardPayment)
                    receiptElement = presenter.LoadReceiptXaml(@"modules/mawaqif/pages/receipts/mawaqifreceipt.xaml");
                else
                    receiptElement = presenter.LoadReceiptXaml(@"modules/mawaqif/pages/receipts/mawaqifreceipt_card.xaml");
            }
            else
            {
                //receiptElement = presenter.LoadReceiptXaml(@"modules/mawaqif/pages/receipts/mawaqifreceipt.xaml");
                if (!Transaction.CardPayment)
                    receiptElement = presenter.LoadReceiptXaml(@"modules/mawaqif/pages/receipts/mawaqifreceipt.xaml");
                else
                    receiptElement = presenter.LoadReceiptXaml(@"modules/mawaqif/pages/receipts/mawaqifreceipt_card.xaml");
            }

            receiptPrintingCompleted = false;
            stateTimeoutExceeded = false;

            timer.Tick += PrintReceiptOnRenderComplete;
            timer.Interval = new TimeSpan(0, 0, 0, 0, 10);
            timer.Start();
            Console.WriteLine("{0}: receipt notification presenter loaded.", DateTime.Now);
            using (FileStream stream = new FileStream(@"app001.log", FileMode.Append, FileAccess.Write))
            {
                StreamWriter writer = new StreamWriter(stream);
                writer.WriteLine(string.Format("{0}: receipt notification presenter loaded.", DateTime.Now));
                writer.Flush();
                writer.Close();
            }
            return viewGrid;

            using (FileStream stream = new FileStream(@"app001.log", FileMode.Append, FileAccess.Write))
            {
                StreamWriter writer = new StreamWriter(stream);
                writer.WriteLine(string.Format("{0}: Mawaqif Receipt Load Xaml Completed.", DateTime.Now));
                writer.Flush();
                writer.Close();
            }
        }
        public FrameworkElement LoadState(TransactionContextBase transactionContext, IDeviceAgent devices, string stateName = null)
        {
            Trace.WriteLine(string.Format("{0} - LoadState Started for State {1} ", DateTime.Now, stateName));
            FrameworkElement root = null;
            try
            {
                if (string.IsNullOrEmpty(stateName))
                {
                    stateName = GetDefaultStateName();
                    Trace.WriteLine(string.Format("{0} - LoadState Default State {1} ", DateTime.Now, stateName));
                }

                CurrentState = GetStateByName(stateName);
                Trace.WriteLine(string.Format("{0} - LoadState CurrentState {1} ", DateTime.Now, CurrentState));

                if (CurrentState != null)
                {
                    Trace.WriteLine(string.Format("{0} - Loading Class {1} ", DateTime.Now, CurrentState.PresenterName));
                    Type Class = CurrentState.PresenterClass.GetType();
                    root = Class.InvokeMember("LoadXaml",
                        BindingFlags.InvokeMethod,
                        Type.DefaultBinder,
                        CurrentState.PresenterClass,
                        new object[] { devices, this.CurrentState, transactionContext }) as FrameworkElement;
                    Trace.WriteLine(string.Format("{0} - Loaded Class {1} ", DateTime.Now, CurrentState.PresenterName));
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(string.Format("{0} Error in LoadState StateName: {1} Error Desc: {2}",DateTime.Now.ToString(),CurrentState, ex.Message));
                Trace.WriteLine(string.Format("{0} Error in LoadState StateName: {1} Stacktrace: {2}", DateTime.Now.ToString(), CurrentState, ex.StackTrace));
                Trace.WriteLine(string.Format("{0} - Inner Exception : {1} \n Inner StackTrace: {2} ", (ex.InnerException == null) ? "" : ex.InnerException.Message, (ex.InnerException == null) ? "" : ex.InnerException.StackTrace));
                //throw ex;
            }

            return root;
        }
        public override FrameworkElement LoadXaml(IDeviceAgent devices, KioskState state, TransactionContextBase transactionContext)
        {
            Trace.WriteLine(string.Format("{0} : Load Xaml Started", DateTime.Now));
            FrameworkElement viewGrid = base.LoadXaml(devices, state, transactionContext);
            //WrapPanel t1 = (WrapPanel)this.ViewGrid.FindName("ModuleSelectionPanel");
            //t1.Loaded += new RoutedEventHandler(OnLoad);
            if (log.IsInfoEnabled) log.Info(string.Format("{0} : Kiosk In Idle Mode.", DateTime.Now.ToString()));
            // Added By JK on 01/09/12
            this.Transaction.KioskMode = 1; // Indicating Idle Mode.
            if (!loggedOn)
            {
                Logon();
                LoadUtilities();
            }
            else
            {
                if (connectivityPolling)
                {
                    //if (isMonitored)
                    RestartConnectivityTimer();

                    if (monitorClient != null)
                        monitorClient.CheckBackendConnectivityCompleted += new EventHandler<CheckBackendConnectivityCompletedEventArgs>(monitorClient_CheckBackendConnectivityCompleted);
                }
                if (shutdownCommandActive)
                    RestartShutdownTimer();

            }
               adminkey = string.Empty;
            //this.Transaction.KioskServices = KioskAppConfig.KioskServices;

            return viewGrid;
        }
Exemple #13
0
 //private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
 protected ModuleBase(IDeviceAgent deviceAgent)
 {
     devices = deviceAgent;
 }
        public override FrameworkElement LoadXaml(IDeviceAgent devices, KioskState state, TransactionContextBase transactionContext)
        {
            FrameworkElement viewGrid = base.LoadXaml(devices, state, transactionContext);

            List<int> expectedDenominations = new List<int>();
            foreach (string item in this.State.Denomination.Split(','))
            {
                int denomination = 0;
                if (int.TryParse(item, out denomination))
                {
                    expectedDenominations.Add(denomination);
                }
            }

            stackCommandIssued = false;
            submitButtonPressed = false;
            StateTimerTimedOut = false;
            escrowDenomination = -1;

            MaxAmountReached = false;
            Devices.GetCashAcceptor().CashCycleInitiatedEvent += OnCashCycleInitiated;
            Devices.GetCashAcceptor().CashInsertedEvent += OnCashInserted;
            Devices.GetCashAcceptor().NoteStackedEvent += OnNoteStackedEvent;
            Devices.GetCashAcceptor().NoteReturnedEvent += OnNoteReturnedEvent;
            ////Devices.GetCashAcceptor().CashCycleCompletedEvent += OnCashCycleCompletedEvent;
            //Devices.GetCashAcceptor().EnableAsync(expectedDenominations, Double.Parse(this.Transaction.BalanceDue), false);
            //this.Transaction.CashCycleInProgress = false;
            this.State.MinAmount = 0;
            this.State.MaxAmount = Convert.ToDouble(this.Transaction.BalanceDue);
            this.Transaction.AmountDue = this.Transaction.BalanceDue;

            //if ((this.State.MinAmount == -1) && (this.State.MinAmount == -1))
            //    Devices.GetCashAcceptor().EnableAsync(expectedDenominations, Double.Parse(this.Transaction.BalanceDue), this.State.MinAmount, this.State.MaxAmount, false);
            //else
            //
            Devices.GetCashAcceptor().EnableAsync(expectedDenominations, Double.Parse(this.Transaction.BalanceDue), -2, -2, true);
            return viewGrid;
        }