2 using Microsoft.AspNetCore.Authorization;
3 using Microsoft.AspNetCore.Mvc;
27 _reviewService = reviewService;
28 _userProfileService = userProfileService;
29 _departmentService = departmentService;
30 _publicationService = publicationService;
37 model.
Count = _reviewService.GetCountByRole(User);
49 var review = _reviewService.GetById(
id.Value);
55 if (!UserHasPermission(review))
68 Publications = _publicationService.GetAll()
74 [ValidateAntiForgeryToken]
77 if (!ModelState.IsValid)
83 if (!_publicationService.PublicationExists(model.
WorkId))
88 model.
Work = _publicationService.GetById(model.
WorkId);
89 model.
Reviewer = _userProfileService.Get(User);
90 _reviewService.CreateItem(model);
91 return RedirectToAction(nameof(Index));
95 public IActionResult
Edit(Guid?
id)
102 var review = _reviewService.GetById(
id.Value);
108 if (!UserHasPermission(review))
115 Publications = _publicationService.GetAll()
121 [ValidateAntiForgeryToken]
124 if (
id != model.
Id || !_reviewService.Exists(
id))
129 if (!UserHasPermission(_reviewService.GetById(
id)))
134 if (!ModelState.IsValid)
140 if (!_publicationService.PublicationExists(model.
WorkId))
145 model.
Work = _publicationService.GetById(model.
WorkId);
146 _reviewService.UpdateItem(model);
147 return RedirectToAction(nameof(Index));
158 var review = _reviewService.GetById(
id.Value);
164 if (!UserHasPermission(review))
173 [HttpPost, ActionName(
"Delete")]
174 [ValidateAntiForgeryToken]
177 if (!_reviewService.Exists(
id))
182 if (!UserHasPermission(_reviewService.GetById(
id)))
187 _reviewService.DeleteById(
id);
188 return RedirectToAction(nameof(Index));
191 private bool UserHasPermission(
Review guidance)
193 var user = _userProfileService.Get(User);
194 var department = _departmentService.Get(d => d.Staff.Contains(user));
195 return PageHelpers.IsAdmin(User) ||
196 PageHelpers.IsHeadOfDepartment(User) &&
197 department.Staff.Contains(guidance.
Reviewer) ||
IActionResult Index(ReviewIndexModel model)
ReviewController(IReviewService reviewService, IUserProfileService userProfileService, IDepartmentService departmentService, IPublicationService publicationService)
IEnumerable< DAL.Entities.Review > Reviews
IActionResult Details(Guid?id)
DAL.Entities.Publications.Publication Work
IEnumerable< DAL.Entities.Publications.Publication > Publications
IActionResult Edit(Guid id, ReviewEditModel model)
IActionResult Edit(Guid?id)
IActionResult Create(ReviewModel model)
IActionResult DeleteConfirmed(Guid id)
virtual UserProfile.UserProfile Reviewer
DAL.Entities.UserProfile.UserProfile Reviewer
IActionResult Delete(Guid?id)