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 RefreshOrdersWithReservationsCollection() { OrdersWithReservations.Clear(); OrderedDishes.Clear(); var userOrders = _unitOfWork.Orders.GetAll() .Join(_unitOfWork.Reservations.GetAll(), order => order.ReservationId, reservation => reservation.Id, (o, r) => new OrderWithReservationInfo { OrderId = o.Id, TableId = r.TableId, UserId = o.UserId, Day = r.Day.ToLongDateString(), FirstTime = r.FirstTime.ToShortTimeString(), LastTime = r.LastTime.ToShortTimeString() }) .Where(or => or.UserId == _user.Id); foreach (var us in userOrders) { OrdersWithReservations.Add(us); } }
private void OnSelectAnotherOrderCommandExecute() { if (SelectedOrderWithReservation != null) { OrderedDishes.Clear(); // получаем все заказанные блюда var orderedDishes = _unitOfWork.OrderedDishes.GetAll() .Where(od => od.OrderId == SelectedOrderWithReservation.OrderId); // добавляем в коллекцию OrderedDishes.AddItems(orderedDishes); TotalSum = _orderedSumCalculator.GetCurrentOrderedSum(); } }