private async void CommentEditButton_Click(object sender, RoutedEventArgs e)
        {
            if (sender is Button button)
            {
                if (button.DataContext is ReviewCommentViewModel reviewComment)
                {
                    //var editWindow = new ModalOkCancelWindow();
                    //editWindow.Width = 500;
                    //editWindow.Height = 600;
                    var editWindow = EditPanel;
                    var content    = new ReviewCommentEditControl();

                    if (content.DataContext is ReviewCommentViewModel editVM)
                    {
                        editVM.UpdateSource(new ReviewCommentModel());
                        editVM.Model.CopyFrom(reviewComment.Model);
                        //editVM.Model.CommentReviewVotes = new ObservableCollection<ReviewVoteModel>(reviewComment.Model.CommentReviewVotes.ToList());
                        editVM.Review = reviewComment.Review;
                        await editVM.Refresh();

                        editWindow.ModalContent = content;
                        if (editWindow.ShowDialog() == true)
                        {
                            reviewComment.Model.CopyFrom(editVM.Model);
                            await reviewComment.SaveChanges();
                        }
                    }
                }
                else if (button.DataContext is CommentViewModel comment)
                {
                    //var editWindow = new ModalOkCancelWindow();
                    //editWindow.Width = 500;
                    //editWindow.Height = 280;
                    var editWindow = EditPanel;
                    var content    = new CommentEditControl();

                    if (content.DataContext is CommentViewModel editVM)
                    {
                        editVM.Model = new CommentModel();
                        editVM.Model.CopyFrom(comment.Model);

                        editWindow.ModalContent = content;
                        if (editWindow.ShowDialog() == true)
                        {
                            comment.Model.CopyFrom(editVM.Model);
                            await comment.SaveChanges();
                        }
                    }
                }
            }
        }
        private async void CommentAddButton_Click(object sender, RoutedEventArgs e)
        {
            if (sender is Button button)
            {
                //var editWindow = new ModalOkCancelWindow();
                //editWindow.Width = 500;
                //editWindow.Height = 600;
                var editWindow = EditPanel;
                var content    = new ReviewCommentEditControl
                {
                    Header     = "Add new Comment",
                    SubmitText = "Add"
                };

                IncidentReviewViewModel reviewVM = null;
                if (content.DataContext is ReviewCommentViewModel editVM)
                {
                    if (ViewModel.SelectedReview != null)
                    {
                        reviewVM = ViewModel.SelectedReview;
                    }
                    else if (button.Tag is IncidentReviewViewModel currentReviewViewModel)
                    {
                        reviewVM = currentReviewViewModel;
                    }

                    if (reviewVM != null)
                    {
                        editVM.UpdateSource(new ReviewCommentModel(reviewVM.CurrentUserModel, reviewVM.Model));
                        //editVM.Model.CommentReviewVotes = new ObservableCollection<ReviewVoteModel>(reviewComment.Model.CommentReviewVotes.ToList());
                        editVM.Review = reviewVM;
                        await editVM.Refresh();

                        editWindow.ModalContent = content;
                        if (editWindow.ShowDialog() == true)
                        {
                            await reviewVM.AddCommentAsync(editVM.Model);
                        }
                    }
                }
            }
        }