public LoginPanelViewModel(IExpandedNavigation navigationService)
        {
            _navigationService = navigationService;

            LogOutCommand = new RelayCommand(ExecuteLogOutCommand);

            Messenger.Default.Register<CustomerStatus>(this, action => Customer = action.Customer);
        }
        public LineDetailsViewModel(IExpandedNavigation navigationService,
            IBusStopProvider lineDetailsProvider)
        {
            _navigationService = navigationService;
            _lineDetailsProvider = lineDetailsProvider;

            Messenger.Default.Register<LineStatus>(this, (message) => Line = message.Line);

            AddToFavouriteCommand = new RelayCommand(AddToFavourtieExecute);
            ReturnTripCommand = new RelayCommand(ReturnTripExecute);
        }
        public ChooseLineViewModel(IExpandedNavigation navigationService,
            ILineProvider lineProvider)
        {
            _navigationService = navigationService;
            _lineProvider = lineProvider;

            Lines = new ObservableCollection<Line>();

            NavigateToLineDetails
                = new RelayCommand(ExecuteNavigateToLineDetails);

            DownloadTickets();
        }
        public ChooseTicketTypeViewModel(IExpandedNavigation navigationService, 
            ITicketProvider ticketProvider, IAccountManager accountManager)
        {
            NavigationService = navigationService;
            TicketProvider = ticketProvider;
            AccountManager = accountManager;

            OneTimeTickets = new ObservableCollection<Ticket>();
            SeasonTickets = new ObservableCollection<Ticket>();

            NavigateToBuyTicketCount
                = new RelayCommand(ExecuteNavigateToBuyTicketCount);          

            DownloadTickets();
        }
        public BuyTicketCountViewModel(
            IExpandedNavigation navigationService)
        {
            _navigationService = navigationService;

            TicketCounts = new ObservableCollection<int>();
            InitTicketCounts();

            Messenger.Default.Register<PurchaseTicketStatus>(this,
               (message) =>
               {
                   _actualPurchaseStatus = message;
               });

            NavigateToFinalizationTransaction
                    = new RelayCommand(ExecuteNavigateToFinalizationTransaction);
        }
        public MainMenuViewModel(IExpandedNavigation navigationService, 
            ICustomerOperationProvider customerOperationProvider)
        {
            _navigationService = navigationService;
            _customerOperationProvider = customerOperationProvider;

            NavigateToPurchaseHistory
                = new RelayCommand(ExecuteNavigateToPurchaseHistory);

            NavigateToBoostAccount
                = new RelayCommand(ExecuteNavigateToBoostAccount);

            NavigateToBuyTicket
                = new RelayCommand(ExecuteNavigateToBuyTicket);

            NavigateToTimetable
                = new RelayCommand(ExecuteNavigateToTimetable);

            Messenger.Default.Register<CustomerStatus>(this, message => DownloadActiveTickets());

            UpdateActiveTicketList();
        }
        public FinalizationTransactionViewModel(
            IExpandedNavigation navigationService, 
            ICustomerOperationProvider customerOperation, 
            IAccountManager accountManager)
        {
            _navigationService = navigationService;
            _customerOperation = customerOperation;
            _accountManager = accountManager;

            AcceptTransaction = 
                new RelayCommand(ExecuteAcceptTransaction);

            Messenger.Default.Register<PurchaseTicketStatus>(this,
                message =>
                {
                    PurchaseTicket.TicketId = message.Ticket.Id;
                    Ticket = message.Ticket;
                    Count = message.TicketCount;
                });

            PurchaseTicket = new PurchaseTicket()
            {
                DeviceId = "sampledeviceId",
            };
        }
        public LoginViewModel(
            IExpandedNavigation navigationService, IAccountManager accountManager)
        {
            _navigationService = navigationService;
            _accountManager = accountManager;

            NavigateToMainMenu
                = new RelayCommand(ExecuteNavigateToMainMenu);

            LogUser
                = new RelayCommand<IPasswordGuardian>(ExecuteLogUser);

            RegisterUser
                = new RelayCommand<IPasswordGuardian>(ExecuteRegisterUser);
        }
        public BoostAccountViewModel(
            IExpandedNavigation navigationService, ICustomerOperationProvider customerOperation)
        {
            _navigationService = navigationService;
            _customerOperation = customerOperation;

            AcceptBoostAccount 
                = new RelayCommand(ExecuteAcceptBoostAccount);

            NaviagteToMainMenu
                = new RelayCommand(ExecuteNaviagteToMainMenu);

            Messenger.Default.Register<CustomerStatus>(this, message => Customer = message.Customer);
        }