public ActionResult InstitutionJournalLicense(int id, InstitutionJournalLicenseViewModel model) { // Ensure that only admin and institutional admin users can use the update all journals of a publisher if (model.UpdateAllJournalsOfPublisher && (!this.User.IsInRole(ApplicationRole.Admin) && !this.User.IsInRole(ApplicationRole.InstitutionAdmin))) { return new HttpUnauthorizedResult(); } var journal = this.journalRepository.Find(id); if (this.ModelState.IsValid) { var institutionJournalsToModify = new List<InstitutionJournal>(); if (model.UpdateAllJournalsOfPublisher) { var institutionJournals = this.institutionJournalRepository.FindAll(new InstitutionJournalFilter { InstitutionId = model.Institution, PublisherId = journal.PublisherId }); var publisherJournals = this.journalRepository.SearchAll(new JournalFilter { PublisherId = journal.PublisherId }); foreach (var publisherJournal in publisherJournals) { var institutionJournal = institutionJournals.FirstOrDefault(i => i.JournalId == publisherJournal.Id) ?? new InstitutionJournal(); institutionJournal.DateAdded = DateTime.Now; institutionJournal.Link = model.Link; institutionJournal.JournalId = publisherJournal.Id; institutionJournal.UserProfileId = this.Authentication.CurrentUserId; institutionJournal.InstitutionId = model.Institution; institutionJournalsToModify.Add(institutionJournal); } } else { var institutionJournal = this.institutionJournalRepository.Find(id, model.Institution) ?? new InstitutionJournal(); institutionJournal.DateAdded = DateTime.Now; institutionJournal.Link = model.Link; institutionJournal.JournalId = journal.Id; institutionJournal.UserProfileId = this.Authentication.CurrentUserId; institutionJournal.InstitutionId = model.Institution; institutionJournalsToModify.Add(institutionJournal); } foreach (var institutionJournal in institutionJournalsToModify) { this.institutionJournalRepository.InsertOrUpdate(institutionJournal); } this.institutionJournalRepository.Save(); return this.Redirect(model.RefererUrl); } model.JournalTitle = journal.Title; model.JournalLink = journal.Link; model.JournalPublisher = journal.Publisher.Name; return this.View(model); }
public ViewResult InstitutionJournalLicense(int id, int institutionId, string refererUrl) { var model = new InstitutionJournalLicenseViewModel( this.journalRepository.Find(id), this.institutionJournalRepository.Find(id, institutionId), refererUrl, this.institutionRepository.All.ToSelectListItems("<Select institution>")); return this.View(model); }