public MainViewModel(IBooksService booksService, IDialogService dialogService, IBooksStateService booksStateService)
        {
            _booksService      = booksService ?? throw new ArgumentNullException(nameof(booksService));
            _dialogService     = dialogService ?? throw new ArgumentNullException(nameof(dialogService));
            _booksStateService = booksStateService ?? throw new ArgumentNullException(nameof(booksStateService));

            RefreshCommand    = new DelegateCommand(OnRefresh);
            ShowDialogCommand = new DelegateCommand(OnShowDialog);
        }
        public BookDetailViewModel(IDialogService dialogService, IBooksStateService booksStateService)
        {
            _dialogService     = dialogService ?? throw new ArgumentNullException(nameof(dialogService));
            _booksStateService = booksStateService;
            _booksStateService.PropertyChanged += (sender, e) =>
            {
                if (e.PropertyName == "SelectedBook")
                {
                    Book = _booksStateService.SelectedBook;
                }
            };

            Action1Command = new DelegateCommand(OnAction1);
        }