private void RejectManuscriptAgain()
        {
            ManuscriptToUpdate.ManuscriptId          = SelectedUnderReviewManuscript.ManuscriptId;
            ManuscriptToUpdate.IssueId               = 3;
            ManuscriptToUpdate.DateAccepted          = new DateTime(2099, 1, 1);
            ManuscriptToUpdate.ManuscriptStatus      = 2;
            ManuscriptToUpdate.NumberOfPagesOccupied = 0;
            ManuscriptToUpdate.OrderInIssue          = 0;
            ManuscriptToUpdate.BeginningPageNumber   = 0;
            _updateManuscriptService.UpdateManuscript(ManuscriptToUpdate);
            MessageBox.Show($"Manuscript entitled as '{SelectedUnderReviewManuscript.ManuscriptTitle}' has been rejected.",
                            "Success!",
                            MessageBoxButton.OK,
                            MessageBoxImage.Information);
            //Refresh DB
            _manuscriptService = new ListManuscriptService(_context);
            _issueService      = new ListIssueService(_context);
            _reviewService     = new ListReviewService(_context);

            var manuscripts = _manuscriptService.GetManuscriptList().ToList();
            var issues      = _issueService.GetIssueList().ToList();
            var reviews     = _reviewService.GetReviewList().ToList();

            ManuscriptList = new ObservableCollection <ManuscriptListDto>(manuscripts);
            IssueList      = new ObservableCollection <IssueListDto>(issues);
            ReviewList     = new ObservableCollection <ReviewListDto>(reviews);

            //Refresh ListBox
            SelectedManuscriptReviewList.Clear();
            foreach (var review in SelectedManuscriptReviewList)
            {
                SelectedManuscriptReviewList.Remove(review);
            }
            UnderReviewManuscriptList.Remove(SelectedUnderReviewManuscript);
        }
        private void UpdateReview()
        {
            if (InputAppropriatenessScore == "" || InputClarityScore == "" || InputMethodologyScore == "" ||
                InputContributionScore == "" || InputRecommendationStatus == "")
            {
                MessageBox.Show($"Please fill in all ratings.",
                                "Error!",
                                MessageBoxButton.OK,
                                MessageBoxImage.Error);
            }
            else
            {
                ReviewToUpdate.AppropriatenessScore = Convert.ToInt32(InputAppropriatenessScore);
                ReviewToUpdate.ClarityScore         = Convert.ToInt32(InputClarityScore);
                ReviewToUpdate.MethodologyScore     = Convert.ToInt32(InputMethodologyScore);
                ReviewToUpdate.ContributionScore    = Convert.ToInt32(InputContributionScore);
                ReviewToUpdate.RecommendationStatus = Convert.ToBoolean(Convert.ToInt32(InputRecommendationStatus));

                foreach (var manuscript in ManuscriptList)
                {
                    if (manuscript.ManuscriptId == SelectedManuscript.ManuscriptId)
                    {
                        foreach (var review in ReviewList)
                        {
                            if (review.ReviewerId == LoggedReviewer.ReviewerId && review.ManuscriptId == SelectedManuscript.ManuscriptId)
                            {
                                ReviewToUpdate.ReviewId = review.ReviewId;
                            }
                        }
                    }
                }
                _updateReviewService.UpdateReview(ReviewToUpdate);
                InputAppropriatenessScore = "";
                InputClarityScore         = "";
                InputMethodologyScore     = "";
                InputContributionScore    = "";
                InputRecommendationStatus = "";
                MessageBox.Show($"Manuscript entitled as '{SelectedManuscript.ManuscriptTitle}' has been reviewed, thank you for your service!",
                                "Success!",
                                MessageBoxButton.OK,
                                MessageBoxImage.Information);

                //Refresh DB
                _manuscriptService = new ListManuscriptService(_context);
                _reviewerService   = new ListReviewerService(_context);
                _reviewService     = new ListReviewService(_context);

                var manuscripts = _manuscriptService.GetManuscriptList().ToList();
                var reviewers   = _reviewerService.GetReviewerList().ToList();
                var reviews     = _reviewService.GetReviewList().ToList();

                ManuscriptList = new ObservableCollection <ManuscriptListDto>(manuscripts);
                ReviewerList   = new ObservableCollection <ReviewerListDto>(reviewers);
                ReviewList     = new ObservableCollection <ReviewListDto>(reviews);


                //Refresh ListBox
                LoggedManuscriptList.Remove(SelectedManuscript);
            }
        }
        private void ScheduleManuscript()
        {
            ManuscriptToUpdate.ManuscriptId          = SelectedAcceptedManuscript.ManuscriptId;
            ManuscriptToUpdate.IssueId               = 1; // placeholder for now
            ManuscriptToUpdate.ManuscriptStatus      = 5;
            ManuscriptToUpdate.NumberOfPagesOccupied = Convert.ToInt32(InputTotalPagesOccupied);
            ManuscriptToUpdate.OrderInIssue          = Convert.ToInt32(InputOrderInIssue);
            ManuscriptToUpdate.BeginningPageNumber   = Convert.ToInt32(InputBeginningPageNumber);
            _updateManuscriptService.UpdateManuscript(ManuscriptToUpdate);
            MessageBox.Show($"Manuscript entitled as '{SelectedAcceptedManuscript.ManuscriptTitle}' has been schduled.",
                            "Success!",
                            MessageBoxButton.OK,
                            MessageBoxImage.Information);
            //Refresh DB
            _manuscriptService = new ListManuscriptService(_context);
            _issueService      = new ListIssueService(_context);
            _reviewService     = new ListReviewService(_context);

            var manuscripts = _manuscriptService.GetManuscriptList().ToList();
            var issues      = _issueService.GetIssueList().ToList();
            var reviews     = _reviewService.GetReviewList().ToList();

            ManuscriptList = new ObservableCollection <ManuscriptListDto>(manuscripts);
            IssueList      = new ObservableCollection <IssueListDto>(issues);
            ReviewList     = new ObservableCollection <ReviewListDto>(reviews);

            //Refresh ListBox
            AcceptedManuscriptList.Remove(SelectedAcceptedManuscript);
            InputOrderInIssue        = "";
            InputTotalPagesOccupied  = "";
            InputBeginningPageNumber = "";
        }
        private void AddReview()
        {
            var selectedReviewers = FrontReviewerList.Where(c => c.IsSelected);
            var reviewerIdBag     = new List <int>();

            foreach (var dto in selectedReviewers)
            {
                reviewerIdBag.Add(dto.ReviewerId);
            }
            if (reviewerIdBag.Count >= 3)
            {
                //update manuscript
                ManuscriptToUpdate.ManuscriptId          = SelectedReceivedManuscript.ManuscriptId;
                ManuscriptToUpdate.IssueId               = 3;
                ManuscriptToUpdate.DateAccepted          = new DateTime(2099, 1, 1);
                ManuscriptToUpdate.ManuscriptStatus      = 3;
                ManuscriptToUpdate.NumberOfPagesOccupied = 0;
                ManuscriptToUpdate.OrderInIssue          = 0;
                ManuscriptToUpdate.BeginningPageNumber   = 0;
                _updateManuscriptService.UpdateManuscript(ManuscriptToUpdate);

                //add reviews
                ReviewToAdd.ManuscriptId = SelectedReceivedManuscript.ManuscriptId;
                foreach (var reviewerId in reviewerIdBag)
                {
                    ReviewToAdd.ReviewerId = reviewerId;
                    _addReviewService.AddReview(ReviewToAdd);
                }

                MessageBox.Show($"The manuscript entitled as '{SelectedReceivedManuscript.ManuscriptTitle}' has been sent for peer review.",
                                "Success!",
                                MessageBoxButton.OK,
                                MessageBoxImage.Information);

                //Refresh DB
                _manuscriptService = new ListManuscriptService(_context);
                _issueService      = new ListIssueService(_context);
                _reviewService     = new ListReviewService(_context);

                var manuscripts = _manuscriptService.GetManuscriptList().ToList();
                var issues      = _issueService.GetIssueList().ToList();
                var reviews     = _reviewService.GetReviewList().ToList();

                ManuscriptList = new ObservableCollection <ManuscriptListDto>(manuscripts);
                IssueList      = new ObservableCollection <IssueListDto>(issues);
                ReviewList     = new ObservableCollection <ReviewListDto>(reviews);

                //Refresh ListBox
                ReceivedManuscriptList.Remove(SelectedReceivedManuscript);
            }
            else
            {
                MessageBox.Show($"Please select three or more reviewers to peer review.",
                                "Success!",
                                MessageBoxButton.OK,
                                MessageBoxImage.Information);
            }
        }
        public ReviewerViewModel(ReviewerListDto loggedReviewer, UpdateReviewService updateReviewService) : this(new EfCoreContext())
        {
            LoggedReviewer    = loggedReviewer;
            ReviewerFirstName = loggedReviewer.Name.Split(' ').First() + "!";

            InputAppropriatenessScore = "";
            InputClarityScore         = "";
            InputMethodologyScore     = "";
            InputContributionScore    = "";
            InputRecommendationStatus = "";

            _updateReviewService = updateReviewService;

            ReviewToUpdate = new ReviewListDto
            {
                AppropriatenessScore = 0,
                ClarityScore         = 0,
                MethodologyScore     = 0,
                ContributionScore    = 0,
                DateReviewed         = DateTime.Now,
            };

            _manuscriptService = new ListManuscriptService(_context);
            _reviewerService   = new ListReviewerService(_context);
            _reviewService     = new ListReviewService(_context);

            var manuscripts = _manuscriptService.GetManuscriptList().ToList();
            var reviewers   = _reviewerService.GetReviewerList().ToList();
            var reviews     = _reviewService.GetReviewList().ToList();

            ManuscriptList = new ObservableCollection <ManuscriptListDto>(manuscripts);
            ReviewerList   = new ObservableCollection <ReviewerListDto>(reviewers);
            ReviewList     = new ObservableCollection <ReviewListDto>(reviews);

            var manuscriptIdBag = new List <int>();

            foreach (var review in ReviewList)
            {
                if (review.ReviewerId == loggedReviewer.ReviewerId && review.AppropriatenessScore == 0)
                {
                    manuscriptIdBag.Add(review.ManuscriptId);
                }
            }

            foreach (var manuscript in manuscriptIdBag)
            {
                foreach (var parentManuscript in ManuscriptList)
                {
                    if (manuscript == parentManuscript.ManuscriptId)
                    {
                        LoggedManuscriptList.Add(parentManuscript);
                    }
                }
            }
            manuscriptIdBag.Clear();
        }
        public EditorViewModel(EditorListDto loggedEditor, UpdateManuscriptService updateManuscriptService,
                               AddReviewService addReviewService, ListFrontReviewerService listFrontReviewerService) : this(new EfCoreContext())
        {
            LoggedEditor    = loggedEditor;
            EditorFirstName = loggedEditor.Name.Split(' ').First() + "!";

            InputOrderInIssue        = "";
            InputTotalPagesOccupied  = "";
            InputBeginningPageNumber = "";

            _updateManuscriptService  = updateManuscriptService;
            _addReviewService         = addReviewService;
            _listFrontReviewerService = listFrontReviewerService;

            FrontReviewerList = GetReviewerSelectionList();

            ManuscriptToUpdate = new ManuscriptListDto();
            ReviewToAdd        = new AddReviewDto();

            _manuscriptService = new ListManuscriptService(_context);
            _issueService      = new ListIssueService(_context);
            _reviewService     = new ListReviewService(_context);

            var manuscripts = _manuscriptService.GetManuscriptList().ToList();
            var issues      = _issueService.GetIssueList().ToList();
            var reviews     = _reviewService.GetReviewList().ToList();

            ManuscriptList = new ObservableCollection <ManuscriptListDto>(manuscripts);
            IssueList      = new ObservableCollection <IssueListDto>(issues);
            ReviewList     = new ObservableCollection <ReviewListDto>(reviews);

            foreach (var manuscript in ManuscriptList)
            {
                if (manuscript.ManuscriptStatus == 1)
                {
                    ReceivedManuscriptList.Add(manuscript);
                }
                if (manuscript.ManuscriptStatus == 3)
                {
                    foreach (var review in ReviewList)
                    {
                        if (review.ManuscriptId == manuscript.ManuscriptId && review.AppropriatenessScore != 0 && UnderReviewManuscriptList.Contains(manuscript) != true)
                        {
                            UnderReviewManuscriptList.Add(manuscript);
                        }
                    }
                }
                if (manuscript.ManuscriptStatus == 4)
                {
                    AcceptedManuscriptList.Add(manuscript);
                }
            }
        }
Exemple #7
0
        private void SendManuscript()
        {
            if (InputManuscriptTitle == "")
            {
                MessageBox.Show($"Please enter a title for the manuscript.",
                                "Error!",
                                MessageBoxButton.OK,
                                MessageBoxImage.Error);
            }
            else
            {
                var messageManuscriptTitle = InputManuscriptTitle;
                var la = new AuthorManuscriptSelectionViewDto()
                {
                    AuthorId   = LoggedAuthor.AuthorId,
                    IsSelected = true,
                };
                FrontAuthorList.Add(la);
                var selectedAuthors = FrontAuthorList.Where(c => c.IsSelected);
                foreach (var dto in selectedAuthors)
                {
                    ManuscriptToAdd.AuthorsId.Add(dto.AuthorId);
                }
                FrontAuthorList.RemoveAt(FrontAuthorList.Count - 1);
                ManuscriptToAdd.ManuscriptTitle = InputManuscriptTitle;
                _addMultipleManuscriptService.AddMultipleManuscript(ManuscriptToAdd);
                InputManuscriptTitle = "";

                MessageBox.Show($"Manuscript entitled as '{messageManuscriptTitle}' has been sent and will be reviewed by the editors and peer reviewers as soon as possible, stay tuned!",
                                "Success!",
                                MessageBoxButton.OK,
                                MessageBoxImage.Information);

                // Refresh DB
                _manuscriptService       = new ListManuscriptService(_context);
                _notificationService     = new ListNotificationService(_context);
                _authorManuscriptService = new ListAuthorManuscriptService(_context);

                var manuscripts       = _manuscriptService.GetManuscriptList().ToList();
                var notifications     = _notificationService.GetNotificationList().ToList();
                var authorManuscripts = _authorManuscriptService.GetAuthorManuscriptList().ToList();

                ManuscriptList       = new ObservableCollection <ManuscriptListDto>(manuscripts);
                NotificationList     = new ObservableCollection <NotificationListDto>(notifications);
                AuthorManuscriptList = new ObservableCollection <AuthorManuscriptListDto>(authorManuscripts);

                //Refresh ListBox
                var latestManuscript = ManuscriptList.Last();
                latestManuscript.ManuscriptTitle =
                    LoggedManuscriptList.Count + 1 + ". " + latestManuscript.ManuscriptTitle;
                LoggedManuscriptList.Add(latestManuscript);
            }
        }
Exemple #8
0
        public AddAuthorViewModel(AddAuthorService addAuthorService, AddSingleManuscriptService addSingleManuscriptService) : this(new EfCoreContext())
        {
            InputName            = "";
            InputMailingAddress  = "";
            InputEmailAddress    = "";
            InputAffiliation     = "";
            InputUsername        = "";
            InputPassword        = "";
            InputManuscriptTitle = "";

            _addAuthorService           = addAuthorService;
            _addSingleManuscriptService = addSingleManuscriptService;

            AuthorToAdd = new AddAuthorDto
            {
                Name           = "",
                MailingAddress = "",
                EmailAddress   = "",
                Affiliation    = "",
                Username       = "",
                Password       = "",
            };
            ManuscriptToAdd = new AddSingleManuscriptDto
            {
                EditorId         = 1,
                ManuscriptTitle  = "",
                DateReceived     = DateTime.Now,
                ManuscriptStatus = 1,
            };

            _listManuscriptService = new ListManuscriptService(_context);

            var manuscripts = _listManuscriptService.GetManuscriptList().ToList();

            ManuscriptList = new ObservableCollection <ManuscriptListDto>(manuscripts);
        }
Exemple #9
0
        public AuthorViewModel(AuthorListDto loggedAuthor, AddMultipleManuscriptService addMultipleManuscriptService, ListFrontAuthorService listFrontAuthorService) : this(new EfCoreContext())
        {
            InputManuscriptTitle          = "";
            LoggedAuthor                  = loggedAuthor;
            AuthorFirstName               = loggedAuthor.Name.Split(' ').First() + "!";
            _addMultipleManuscriptService = addMultipleManuscriptService;
            _listFrontAuthorService       = listFrontAuthorService;

            ManuscriptToAdd = new AddMultipleManuscriptDto
            {
                ManuscriptTitle = "",
            };

            _manuscriptService       = new ListManuscriptService(_context);
            _notificationService     = new ListNotificationService(_context);
            _authorManuscriptService = new ListAuthorManuscriptService(_context);

            var manuscripts       = _manuscriptService.GetManuscriptList().ToList();
            var notifications     = _notificationService.GetNotificationList().ToList();
            var authorManuscripts = _authorManuscriptService.GetAuthorManuscriptList().ToList();

            ManuscriptList       = new ObservableCollection <ManuscriptListDto>(manuscripts);
            NotificationList     = new ObservableCollection <NotificationListDto>(notifications);
            AuthorManuscriptList = new ObservableCollection <AuthorManuscriptListDto>(authorManuscripts);

            var notificationCounter = 1;

            foreach (var notification in NotificationList)
            {
                if (loggedAuthor.AuthorId == notification.AuthorId)
                {
                    notification.Message = notificationCounter + ". " + notification.Message;
                    notificationCounter++;
                    LoggedNotificationList.Add(notification);
                }
            }
            notificationCounter = 0;

            var manuscriptCounter = 1;
            var manuscriptIdBag   = new List <int>();

            foreach (var authorManuscript in AuthorManuscriptList)
            {
                if (authorManuscript.AuthorId == loggedAuthor.AuthorId)
                {
                    manuscriptIdBag.Add(authorManuscript.ManuscriptId);
                }
            }

            foreach (var manuscript in manuscriptIdBag)
            {
                foreach (var parentManuscript in ManuscriptList)
                {
                    if (manuscript == parentManuscript.ManuscriptId)
                    {
                        parentManuscript.ManuscriptTitle = manuscriptCounter + ". " + parentManuscript.ManuscriptTitle;
                        manuscriptCounter++;
                        LoggedManuscriptList.Add(parentManuscript);
                    }
                }
            }
            manuscriptIdBag.Clear();
            manuscriptCounter = 0;

            FrontAuthorList = GetAuthorSelectionList();
        }