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