2 using Microsoft.AspNetCore.Authorization;
3 using Microsoft.AspNetCore.Mvc;
25 _postgraduateGuidanceService = postgraduateGuidanceService;
26 _userProfileService = userProfileService;
27 _departmentService = departmentService;
34 model.
Count = _postgraduateGuidanceService.GetCountByRole(User);
46 var postgraduateGuidance = _postgraduateGuidanceService.GetById(
id.Value);
47 if (postgraduateGuidance == null)
52 if (!UserHasPermission(postgraduateGuidance))
57 return View(postgraduateGuidance);
61 public IActionResult Create() => View();
65 [ValidateAntiForgeryToken]
68 if (!ModelState.IsValid)
73 model.
Guide = _userProfileService.Get(User);
74 _postgraduateGuidanceService.CreateItem(model);
75 return RedirectToAction(nameof(Index));
79 public IActionResult
Edit(Guid?
id)
86 var postgraduateGuidance = _postgraduateGuidanceService.GetById(
id.Value);
87 if (postgraduateGuidance == null)
92 if (!UserHasPermission(postgraduateGuidance))
102 [ValidateAntiForgeryToken]
105 if (
id != model.
Id || !_postgraduateGuidanceService.Exists(
id))
110 if (!UserHasPermission(_postgraduateGuidanceService.GetById(
id)))
115 if (!ModelState.IsValid)
120 _postgraduateGuidanceService.UpdateItem(model);
121 return RedirectToAction(nameof(Index));
132 var postgraduateGuidance = _postgraduateGuidanceService.GetById(
id.Value);
133 if (postgraduateGuidance == null)
138 if (!UserHasPermission(postgraduateGuidance))
143 return View(postgraduateGuidance);
147 [HttpPost, ActionName(
"Delete")]
148 [ValidateAntiForgeryToken]
151 if (!_postgraduateGuidanceService.Exists(
id))
156 if (!UserHasPermission(_postgraduateGuidanceService.GetById(
id)))
161 _postgraduateGuidanceService.DeleteById(
id);
162 return RedirectToAction(nameof(Index));
167 var user = _userProfileService.Get(User);
168 var department = _departmentService.Get(d => d.Staff.Contains(user));
169 return PageHelpers.IsAdmin(User) ||
170 PageHelpers.IsHeadOfDepartment(User) &&
171 department.Staff.Contains(guidance.
Guide) ||
172 guidance.
Guide.Id == user.Id;
IEnumerable< DAL.Entities.PostgraduateGuidance > PostgraduateGuidances
IActionResult Edit(Guid?id)
IActionResult DeleteConfirmed(Guid id)
IActionResult Edit(Guid id, PostgraduateGuidanceEditModel model)
IActionResult Delete(Guid?id)
IActionResult Index(PostgraduateGuidanceIndexModel model)
IActionResult Create(PostgraduateGuidanceModel model)
IActionResult Details(Guid?id)
DAL.Entities.UserProfile.UserProfile Guide
virtual UserProfile.UserProfile Guide
PostgraduateGuidanceController(IPostgraduateGuidanceService postgraduateGuidanceService, IUserProfileService userProfileService, IDepartmentService departmentService)