public StockEditorViewModel(IStockGateway stockGateway, ISharedDataProvider sharedDataProvider, IViewService viewService, IMessagebus messagebus)
        {
            Guard.AgainstNull(() => stockGateway, () => sharedDataProvider, () => viewService, () => messagebus);

            _stockGateway = stockGateway;
            _sharedDataProvider = sharedDataProvider;
            _viewService = viewService;
            _messagebus = messagebus;

            SaveStockCommand = new RelayCommand(SaveStock, CanSaveStock);
            IsBackNavigationEnabled = true;
        }
        public StockDeletionViewModel(IStockGateway stockGateway, ISharedDataProvider sharedDataProvider, 
            IViewService viewService, IMessagebus messagebus)
        {
            Guard.AgainstNull(() => stockGateway, () => sharedDataProvider, () => viewService, () => messagebus);

            _stockGateway = stockGateway;
            _sharedDataProvider = sharedDataProvider;
            _viewService = viewService;
            _messagebus = messagebus;

            DeleteCommand = new RelayCommand(Delete, CanDelete);
            PageTitle = "Sletning af papir";
            IsBackNavigationEnabled = true;
        }
        public DepositManagementViewModel(IDepositGateway depositGateway, IViewService viewService, 
            IMessagebus messagebus, ISharedDataProvider sharedDataProvider)
        {
            Guard.AgainstNull(() => depositGateway, () => viewService, () => messagebus, () => sharedDataProvider);

            _viewService = viewService;
            _depositGateway = depositGateway;
            _messagebus = messagebus;

            EditSelectedDepositCommand = new RelayCommand(EditSelectedDeposit, IsDepositSelected);
            DeleteSelectedDepositCommand = new RelayCommand(DeleteSelectedDeposit, IsDepositSelected);
            ShowDepositOverviewCommand = new RelayCommand(ShowDepositOverview, IsDepositSelected);
            Deposits = sharedDataProvider.Deposits;

            PageTitle = "Depotadministration";
        }