public PaymentEditorViewModel(IApplicationState applicationState,
                                      TicketTotalsViewModel paymentTotals, PaymentEditor paymentEditor, NumberPadViewModel numberPadViewModel,
                                      OrderSelectorViewModel orderSelectorViewModel, ITicketService ticketService,
                                      ForeignCurrencyButtonsViewModel foreignCurrencyButtonsViewModel, PaymentButtonsViewModel paymentButtonsViewModel,
                                      CommandButtonsViewModel commandButtonsViewModel, TenderedValueViewModel tenderedValueViewModel,
                                      ReturningAmountViewModel returningAmountViewModel, ChangeTemplatesViewModel changeTemplatesViewModel, AccountBalances accountBalances)
        {
            _applicationState                = applicationState;
            _paymentTotals                   = paymentTotals;
            _paymentEditor                   = paymentEditor;
            _numberPadViewModel              = numberPadViewModel;
            _orderSelectorViewModel          = orderSelectorViewModel;
            _ticketService                   = ticketService;
            _foreignCurrencyButtonsViewModel = foreignCurrencyButtonsViewModel;
            _commandButtonsViewModel         = commandButtonsViewModel;
            _tenderedValueViewModel          = tenderedValueViewModel;
            _returningAmountViewModel        = returningAmountViewModel;
            _changeTemplatesViewModel        = changeTemplatesViewModel;
            _accountBalances                 = accountBalances;

            _makePaymentCommand             = new CaptionCommand <PaymentType>("", OnMakePayment, CanMakePayment);
            _selectChangePaymentTypeCommand = new CaptionCommand <PaymentData>("", OnSelectChangePaymentType);

            ClosePaymentScreenCommand = new CaptionCommand <string>(Resources.Close, OnClosePaymentScreen, CanClosePaymentScreen);
            paymentButtonsViewModel.SetButtonCommands(_makePaymentCommand, null, ClosePaymentScreenCommand);
        }
        public NumberPadViewModel(ISettingService settingService, PaymentEditor paymentEditor, TenderedValueViewModel tenderedValueViewModel,
                                  OrderSelectorViewModel orderSelectorViewModel, AccountBalances accountBalances,
                                  ForeignCurrencyButtonsViewModel foreignCurrencyButtonsViewModel, TicketTotalsViewModel paymentTotals)
        {
            _settingService                  = settingService;
            _paymentEditor                   = paymentEditor;
            _tenderedValueViewModel          = tenderedValueViewModel;
            _orderSelectorViewModel          = orderSelectorViewModel;
            _accountBalances                 = accountBalances;
            _foreignCurrencyButtonsViewModel = foreignCurrencyButtonsViewModel;
            _paymentTotals                   = paymentTotals;

            TenderAllCommand         = new CaptionCommand <string>(Resources.All, OnTenderAllCommand);
            ChangeBalanceModeCommand = new DelegateCommand <string>(OnChangeBalanceMode);
            TypeValueCommand         = new DelegateCommand <string>(OnTypeValueExecuted);
            SetValueCommand          = new DelegateCommand <string>(OnSetValue);
            DivideValueCommand       = new DelegateCommand <string>(OnDivideValue);

            EventServiceFactory.EventService.GetEvent <GenericEvent <EventAggregator> >().Subscribe(OnEventGenerated);
        }
 public ForeignCurrencyButtonsView(ForeignCurrencyButtonsViewModel viewModel)
 {
     DataContext = viewModel;
     InitializeComponent();
 }