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;
     }
 }