public PatientPageViewModel()
        {
            AddCommand    = new MyICommand(OnAdd);
            RemoveCommand = new MyICommand(OnRemove);
            ChangeCommand = new MyICommand(OnChange);

            ChangeTabCommand = new RelayCommand <int>(OnChangeTab);

            NewReviewTab = new NewReview();

            LogOutCommand = new MyICommand(OnLogOut);
        }
        private ICommand CreateSubmitNewReviewCommand(IReviewRepository reviews)
        {
            return(new Command(
                       execute: async() =>
            {
                try
                {
                    var review = NewReview.GetReview();
                    await reviews.SaveReviewAsync(m_currentBookId.Value, review);

                    Reviews.Add(review);
                    NewReview.Clear();
                }
                catch (Exception ex)
                {
                    m_messaging.Send(this, ex);
                }
            },
                       canExecute: () =>
            {
                return NewReview.IsValid() && m_currentBookId.HasValue;
            }));
        }