void ViewModelProcessed(object sender, OnProcessedArgs args)
        {
            var processType = args.ProcessType;
            var gratuity    = _viewModel.Gratuity;
            var ticket      = SelectedTicket;

            InteractionService.UserIntraction.DeblurMainWindow();
            _view.Close();

            var result = new CreditCardProcessingResult {
                ProcessType = processType
            };

            if (processType == ProcessType.PreAuth)
            {
                result.Amount = Preauth(_view.SwipeDataBox.SecurePassword, ticket, _viewModel.TenderedAmount, gratuity);
            }

            if (processType == ProcessType.Force)
            {
                result.Amount = Force(_view.SwipeDataBox.SecurePassword, ticket, _viewModel.TenderedAmount, gratuity);
            }

            result.PublishEvent(EventTopicNames.PaymentProcessed);
        }
 private static void CheckResultD(BillingMode billingMode, CreditCardProcessingResult messageResponse)
 {
     if (billingMode == BillingMode.Mode04)
     {
         Console.WriteLine($"Billing Mode {billingMode} for Message Response {messageResponse}");
     }
     else
     {
         Console.WriteLine($"Billing Mode {billingMode} for Message Response {messageResponse}");
     }
 }
        public void Process(CreditCardProcessingData creditCardProcessingData)
        {
            // get operator response
            var userEntry = InteractionService.UserIntraction.GetStringFromUser(Name, _settings.DisplayMessage);

            // publish processing result
            var result = new CreditCardProcessingResult()
            {
                Amount      = creditCardProcessingData.TenderedAmount,
                ProcessType = userEntry.Length > 0 ? ProcessType.Force : ProcessType.Cancel
            };

            result.PublishEvent(EventTopicNames.PaymentProcessed);
        }
Esempio n. 4
0
        public void ViewModelProcessed(object sender, OnProcessedArgs args)
        {
            var processType = args.ProcessType;
            var gratuity    = _viewModel.Gratuity;
            var ticket      = SelectedTicket;
            var txType      = ((ComboBoxItem)_view.FdTransactionType.SelectedItem).Tag;


            var result = new CreditCardProcessingResult {
                ProcessType = processType
            };
            var amount = _viewModel.TenderedAmount + gratuity;

            if (processType == ProcessType.External)
            {
                result.Amount = amount;
                InteractionService.UserIntraction.DeblurMainWindow();
                _view.Close();
                result.PublishEvent(EventTopicNames.PaymentProcessed);
                return;
            }


            if (processType == ProcessType.Swipe)
            {
                string debugTrack = "";
                _view.CardStatus.Text = Samba.Localization.Properties.Resources.SwipeCreditCard;
                _view.Refresh();
                var ccData = ReadCreditCardTrackData(out debugTrack);
                if (ccData == null)
                {
                    if (String.IsNullOrWhiteSpace(debugTrack))
                    {
                        _view.CardStatus.Text = Samba.Localization.Properties.Resources.CreditCardReadFailed;
                    }
                    else
                    {
                        _view.CardStatus.Text = debugTrack;
                    }
                    _view.Refresh();
                    return;
                }

                _view.CardExpire.Text     = ccData.CardExpiry;
                _view.CardName.Text       = ccData.CardName;
                _view.CardNumber.Password = ccData.CardNumber;
                _view.CardStatus.Text     = Samba.Localization.Properties.Resources.CreditCardReadSuccess;
                _view.Refresh();
                return;
            }



            if (processType == ProcessType.Force)
            {
                string requestStatus;
                _view.CardStatus.Text = "";
                _view.Refresh();

                var resp = Force(ticket, amount, out requestStatus);
                if (resp != null)
                {
                    //rjoshi fix me

                    var content = resp.ctr.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
                    PrintJobFactory.CreatePrintJob(AppServices.CurrentTerminal.SlipReportPrinter).DoPrint(content);

                    if (resp.transaction_approved)
                    {
                        result.Amount         = amount;
                        _view.CardStatus.Text = resp.bank_message;

                        //TODO Print job
                    }
                    else
                    {
                        _view.CardStatus.Text = resp.bank_message;
                        _view.Refresh();
                        return;
                    }
                }
                else
                {
                    _view.CardStatus.Text = Localization.Properties.Resources.CreditCardRequestSendFailure + " " + requestStatus;
                    _view.Refresh();
                    return;
                }
            }
            else if (processType == ProcessType.External)
            {
                result.Amount = amount;
            }
            InteractionService.UserIntraction.DeblurMainWindow();
            _view.Close();
            result.PublishEvent(EventTopicNames.PaymentProcessed);
        }