private void RegisterMessage() { Messenger.Default.Register<MainMenuMessage>(this, m => { Menu = ServiceLocator.Current.GetInstance<MainMenuViewModel>(); }); Messenger.Default.Register<CheckoutMessage>(this, m => { Content = ServiceLocator.Current.GetInstance<CheckoutContainerViewModel>(); }); Messenger.Default.Register<CheckoutManageMessage>(this, m => { Content = ServiceLocator.Current.GetInstance<CheckoutManageViewModel>(); }); Messenger.Default.Register<BookSearchMessage>(this, m => { var vm = ServiceLocator.Current.GetInstance<BookSearchViewModel>(); Content = vm; }); Messenger.Default.Register<BookManageMessage>(this, m => { var vm = ServiceLocator.Current.GetInstance<BookManageViewModel>(); Content = vm; }); Messenger.Default.Register<StatusMessage>(this, m => { LoginUser = new UserViewModel(m.User); }); Messenger.Default.Register<UserManageMessage>(this, m => { var vm = ServiceLocator.Current.GetInstance<UserManageViewModel>(); Content = vm; }); Messenger.Default.Register<OptionDialogMessage>(this, m => { var vm = ServiceLocator.Current.GetInstance<OptionDialogViewModel>(); var window = new View.Dialog.OptionDialog { DataContext = vm, Owner = App.Current.MainWindow }; m.Result = window.ShowDialog(); m.Option = vm.Option; m.Option.HttpProxyPassword = window.PW.Password; }); Messenger.Default.Register<CheckoutDialogMessage>(this, m => { var vm = ServiceLocator.Current.GetInstance<CheckoutDialogViewModel>(); vm.Checkout = m.Checkout; vm.IsCheckin = m.IsCheckin; vm.DialogTitle = m.DialogTitle; var window = new View.Dialog.CheckoutDialog { DataContext = vm, Owner = App.Current.MainWindow }; m.Result = window.ShowDialog(); m.Checkout = vm.Checkout; }); }
private void Search() { if (RegNo != null) { _checkoutService.GetBook((int)RegNo, (book, ex) => { if (ex != null) { Book = null; Status = CoStatus.NOSELECT; MessageBox.Show(App.Current.MainWindow, ex.Message); return; } Book = new BookViewModel(book); }); _checkoutService.GetCheckouts(null, RegNo, false, null, null, 0, -1, (checkouts, ex) => { if (ex != null) { MessageBox.Show(App.Current.MainWindow, ex.Message); return; } var checkout = checkouts.Checkouts.FirstOrDefault(); if (checkout != null) { if (checkout.account == Account) { // 返却できます Status = CoStatus.CIOK; } else { // 貸出中 Status = CoStatus.OTHERCO; } } else { if (Book != null) { // 貸出できます Status = CoStatus.COOK; } else { Status = CoStatus.NOSELECT; } } }); } else { Book = null; Status = CoStatus.NOSELECT; } if (!string.IsNullOrEmpty(Account)) { _checkoutService.GetUser(Account, (user, ex) => { if (ex != null) { User = null; Checkouts = null; TotalCount = 0; SelectedCheckout = null; Status = CoStatus.NOSELECT; MessageBox.Show(App.Current.MainWindow, ex.Message); return; } User = new UserViewModel(user); }); _checkoutService.GetCheckouts(Account, null, false, null, null, 0, -1, (checkouts, ex) => { if (ex != null) { MessageBox.Show(App.Current.MainWindow, ex.Message); return; } Checkouts = new ObservableCollection<CheckoutViewModel>(checkouts.Checkouts.Select(t => new CheckoutViewModel(t))); TotalCount = checkouts.TotalCount; if (Checkouts != null) SelectedCheckout = Checkouts.Where(t => t.RegNo == RegNo).FirstOrDefault(); }); } else { User = null; Checkouts = null; TotalCount = 0; SelectedCheckout = null; Status = CoStatus.NOSELECT; } }