public ClientMenuViewModel(User user, Reservation reservation, FastObservableCollection <OrderedDish> orderedDishes = null)
        {
            _user          = user;
            _reservation   = reservation;
            _rootViewModel = ViewModelManager.GetFirstOrDefaultInstance <MainWindowViewModel>();
            OrderedDishes.AutomaticallyDispatchChangeNotifications = true;
            // передаем в конструктор ссылку на собираемую коллекцию заказанных блюд
            _sumCalculator = new OrderedSumCalculator(OrderedDishes);

            AddCommand = new Command(OnAddCommandExecute);
            SelectionChangedCommand = new Command(OnSelectionChangedCommandExecute);
            DeleteCommand           = new Command(OnDeleteCommandExecute, OnDeleteCommandCanExecute);
            BackCommand             = new Command(OnBackCommandExecute);
            NextCommand             = new Command(OnNextCommandExecute, OnNextCommandCanExecute);

            RefreshDishesCollection();

            if (orderedDishes != null)
            {
                OrderedDishes = orderedDishes;
                TotalSum      = _sumCalculator.GetCurrentOrderedSum();
            }
            else
            {
                OrderedDishes.Clear();
            }
        }
        private void OnApplyActionExecute()
        {
            var root = ViewModelManager.GetFirstOrDefaultInstance <MainWindowViewModel>();

            if (SelectedDish == null)
            {
                root.ChangePageWithDialog(new ShortMessageViewModel("Блюдо не выбрано!"), 999);
                return;
            }

            ActionsHelper actionsFilter = new ActionsHelper();
            string        message;
            var           discount = new DiscountAction
            {
                DishId      = SelectedDish.Id,
                DiscountSum = DiscountValue,
                Name        = ActionName,
                Description = ActionInfo
            };

            if (!actionsFilter.CanAddAction(discount, out message))
            {
                root.ChangePageWithDialog(new ShortMessageViewModel(message), 1300);
            }
            else
            {
                root.ChangePageWithDialog(new ShortMessageViewModel("Акция успешно добавлена!"), 1111);
                actionsFilter.SaveAction(discount);
            }
        }
        public ClientHallViewModel(User user, Reservation reservation = null, FastObservableCollection <OrderedDish> orderedDishes = null)
        {
            _user          = user;
            _orderedDishes = orderedDishes;
            _reservation   = new Reservation();
            _rootViewModel = ViewModelManager.GetFirstOrDefaultInstance <MainWindowViewModel>();

            _availabilityChecker = new TablesAvailabilityChecker(Tables);

            BackCommand             = new Command(OnBackCommandExecute);
            NextCommand             = new Command(OnNextCommandExecute, OnNextCommandCanExecute);
            TimeValuChangedCommand  = new Command(OnTimeValuChangedCommandExecute);
            DateValueChangedCommand = new Command(OnDateValueChangedCommandExecute);
            TableSelectionChanged   = new Command(OnTableSelectionChangedExecute);

            DateMinMaxHelper helper = new DateMinMaxHelper();

            MinimumDate = helper.Minimum;
            MaximumDate = helper.Maximum;

            RefreshTablesCollection();
            ReservationsListRefresh();

            if (reservation != null)
            {
                SetViewModelProperties(reservation);
            }
        }
Exemplo n.º 4
0
            public void ReturnsNullForUnregisteredViewModel()
            {
                var vmManager = new ViewModelManager();

                var foundvm = vmManager.GetFirstOrDefaultInstance <TestViewModel>();

                Assert.IsNull(foundvm);
            }
Exemplo n.º 5
0
            public void ReturnsViewModelForRegisteredViewModel()
            {
                var vm        = new TestViewModel();
                var vmManager = new ViewModelManager();

                vmManager.RegisterViewModelInstance(vm);
                var foundvm = vmManager.GetFirstOrDefaultInstance <TestViewModel>();

                Assert.AreEqual(vm, foundvm);
            }
Exemplo n.º 6
0
        public ClientProfileViewModel(IViewModel previousViewModel, User user)
        {
            _rootViewModel        = ViewModelManager.GetFirstOrDefaultInstance <MainWindowViewModel>();
            _parentViewModel      = previousViewModel;
            _authorizationChecker = new AuthorizationChecker(user);
            User = user;

            SaveCommand = new Command(OnSaveCommandExecute, OnSaveCommandCanExecute);
            BackCommand = new Command(OnBackCommandExecute);
        }
        public ClientMainViewModel(User user)
        {
            OrderCommand    = new Command(OnOrderCommandExecute);
            MyOrdersCommand = new Command(OnMyOrdersCommandExecute);
            ProfileCommand  = new Command(OnProfileCommandExecute);
            ReviewsCommand  = new Command(OnReviewsCommandExecute);
            ExitCommand     = new Command(OnExitCommandExecute);

            _user            = user;
            AuthorizedString = $"Авторизован: {_user.Login}";
            _parentViewModel = ViewModelManager.GetFirstOrDefaultInstance <MainWindowViewModel>();
        }
        private void OnSaveAnswerCommandExecute()
        {
            int id = SelectedClientReview.Id;

            _binder.SaveAnswer(AdminAnswer, id);
            RefreshReviewsCollection();
            SelectedClientReview = ClientReviews.First(c => c.Id == id);

            var root = ViewModelManager.GetFirstOrDefaultInstance <MainWindowViewModel>();

            root.ChangePageWithDialog(new ShortMessageViewModel("Ответ сохранен!"), 1500);
            // выбираем тот же отзыв
        }
        public ClientOrdersViewModel(IViewModel parentViewModel, User user)
        {
            _user                 = user;
            UserLogin             = _user.Login;
            _parentViewModel      = parentViewModel;
            _orderedSumCalculator = new OrderedSumCalculator(OrderedDishes);
            _rootViewModel        = ViewModelManager.GetFirstOrDefaultInstance <MainWindowViewModel>();

            BackCommand = new Command(OnBackCommandExecute);
            SelectAnotherOrderCommand = new Command(OnSelectAnotherOrderCommandExecute);
            DeleteOrderCommand        = new Command(OnDeleteOrderCommandExecute, OnDeleteOrderCommandCanExecute);

            RefreshOrdersWithReservationsCollection();
        }
Exemplo n.º 10
0
            public void ReturnsViewModelForMultiRegisteredViewModel()
            {
                var firstvm = new TestViewModel()
                {
                    FirstName = "Rajiv", LastName = "Mounguengue"
                };
                var secondvm  = new TestViewModel();
                var vmManager = new ViewModelManager();

                vmManager.RegisterViewModelInstance(firstvm);
                vmManager.RegisterViewModelInstance(secondvm);
                var foundvm = vmManager.GetFirstOrDefaultInstance <TestViewModel>();

                Assert.AreEqual(firstvm, foundvm);
            }
Exemplo n.º 11
0
        public ClientTotalsViewModel(User user, Reservation reservation, FastObservableCollection <OrderedDish> orderedDishes)
        {
            OrderedDishes = orderedDishes;

            _user          = user;
            _reservation   = reservation;
            _sumCalculator = new OrderedSumCalculator(orderedDishes);

            _rootViewModel = ViewModelManager.GetFirstOrDefaultInstance <MainWindowViewModel>();

            BackCommand  = new Command(OnBackCommandExecute);
            OrderCommand = new Command(OnOrderCommandExecute);

            FillViewModelProperties();

            CheckBonus();
        }
Exemplo n.º 12
0
        public ManagerHallViewModel()
        {
            _tablesAvailabilityRejuvenator = new TablesAvailabilityRejuvenator(Tables);
            _root         = ViewModelManager.GetFirstOrDefaultInstance <MainWindowViewModel>();
            _timeSelector = new AdminReservationsCreator();
            _selector     = new ClientsForTableSelector();

            // присваивание в конструкторе должно гарантировать поток UI
            _dispatcher = Dispatcher.CurrentDispatcher;

            AddAllTablesToFastObservableCollection();
            RenewPropertiesStart();
            RenewTooltipMessageStart();

            DeleteReservationCommand           = new Command(OnDeleteReservationCommandExecute, OnDeleteReservationCommandCanExecute);
            ReservationSelectionChangedCommand = new Command(OnReservationSelectionChangedCommandExecute);
            TableSelectionChangedCommand       = new Command(OnTableSelectionChangedCommandExecute);
            AddReservationCommand = new Command(OnAddReservationCommandExecute);
        }
        public ClientReviewsViewModel(IViewModel parentViewModel, User user)
        {
            _rootViewModel   = ViewModelManager.GetFirstOrDefaultInstance <MainWindowViewModel>();
            _parentViewModel = parentViewModel;
            _binder          = new ReviewsWithAnswersBinder();
            _user            = user;

            BackCommand             = new Command(OnBackCommandExecute);
            RefreshCommand          = new Command(OnRefreshCommandExecute);
            MyReviewsCommand        = new Command(OnMyReviewsCommandExecute);
            AllReviewsCommand       = new Command(OnAllReviewsCommandExecute);
            AddReviewCommand        = new Command(OnAddReviewCommandExecute);
            EditReviewCommand       = new Command(OnEditReviewCommandExecute, OnAnyReviewCommandCanExecute);
            DeleteReviewCommand     = new Command(OnDeleteReviewCommandExecute, OnAnyReviewCommandCanExecute);
            SelectionChangedCommand = new Command(OnSelectionChangedCommandExecute);

            // показываем все отзывы
            OnAllReviewsCommandExecute();
        }
Exemplo n.º 14
0
            public void ReturnsNullForUnregisteredViewModel()
            {
                var vmManager = new ViewModelManager();

                var foundvm = vmManager.GetFirstOrDefaultInstance<TestViewModel>();

                Assert.IsNull(foundvm);
            }
 private async void OnExitCommandExecute()
 {
     var root = ViewModelManager.GetFirstOrDefaultInstance <MainWindowViewModel>();
     await root.CloseViewModelAsync(false);
 }
Exemplo n.º 16
0
            public void ShouldFailsDueToANonIViewModelType()
            {
                var viewModelManager = new ViewModelManager();

                ExceptionTester.CallMethodAndExpectException <ArgumentException>(() => viewModelManager.GetFirstOrDefaultInstance(typeof(Type)));
            }
Exemplo n.º 17
0
            public void ShouldFailsDueToANonIViewModelType()
            {
                var viewModelManager = new ViewModelManager();

                ExceptionTester.CallMethodAndExpectException<ArgumentException>(() => viewModelManager.GetFirstOrDefaultInstance(typeof(Type)));
            }
Exemplo n.º 18
0
            public void ReturnsViewModelForMultiRegisteredViewModel()
            {
                var firstvm = new TestViewModel(){FirstName = "Rajiv", LastName = "Mounguengue"};
                var secondvm = new TestViewModel();
                var vmManager = new ViewModelManager();

                vmManager.RegisterViewModelInstance(firstvm);
                vmManager.RegisterViewModelInstance(secondvm);
                var foundvm = vmManager.GetFirstOrDefaultInstance<TestViewModel>();

                Assert.AreEqual(firstvm, foundvm);
            }
Exemplo n.º 19
0
            public void ReturnsViewModelForRegisteredViewModel()
            {
                var vm = new TestViewModel();
                var vmManager = new ViewModelManager();

                vmManager.RegisterViewModelInstance(vm);
                var foundvm = vmManager.GetFirstOrDefaultInstance<TestViewModel>();

                Assert.AreEqual(vm, foundvm);
            }
        private void OnBackCommandExecute()
        {
            IViewModel root = ViewModelManager.GetFirstOrDefaultInstance <MainWindowViewModel>();

            root.ChangePage(_parentViewModel);
        }