public BookingViewModel(IUnitOfWork unit, IEventAggregator eventAggregator, IBookingCalculate calculationService, ISearchGuestService searchGuestService, IBookingFacade bookingFacade, IRegionManager regionManager) { _unit = unit; _calculationService = calculationService; _searchGuestService = searchGuestService; _bookingFacade = bookingFacade; _eventAggregator = eventAggregator; _regionManager = regionManager; GuestResults = new ObservableCollection <Guest>(); SearchRooms = new SearchWrapper(); Guest = new GuestWrapper(); SearchCommand = new DelegateCommand(SearchExecute, CanSearchExecute).ObservesCanExecute(() => SearchRooms.IsEnabled); BookCommand = new DelegateCommand <object>(BookExecute, CanBookExecute).ObservesCanExecute(() => IsGuestFormValid); _eventAggregator.GetEvent <LoadEvent>().Subscribe(OnLoadEvent); Calculation.GetInstance().StayTypeChanged += BookingViewModel_StayTypeChanged; SelectedRoomChange.GetInstance().RoomSelectionChanged += BookingViewModel_RoomSelectionChanged; SelectedGuestEvent.GetInstance().SelectedGuestChanged += OnSelectedGuestChange; SearchRooms.StateChanged += SearchRooms_StateChanged; Guest.StateChanged += Guest_StateChanged; }
public CreateNewReservationDialogViewModel(IRoomService roomService, IStayTypeService stayTypeService, ISearchGuestService searchGuestService) { _roomService = roomService; _stayTypeService = stayTypeService; _searchGuestService = searchGuestService; Guest = new GuestWrapper(); NextCommand = new DelegateCommand(NextCommandExecute); CloseCommand = new DelegateCommand(OnCloseCommand); CreateReservationCommand = new DelegateCommand(CreateReservation, CanCreateReservation); SelectedGuestChange.GetIstance().SelectedGuestHasChanged += CreateNewReservationDialogViewModel_SelectedGuestHasChanged; Guest.StateChanged += Guest_StateChanged; }