2 using Microsoft.AspNetCore.Authorization;
3 using Microsoft.AspNetCore.Mvc;
25 _scientificConsultationService = scientificConsultationService;
26 _userProfileService = userProfileService;
27 _departmentService = departmentService;
34 model.
Count = _scientificConsultationService.GetCountByRole(User);
46 var scientificConsultation = _scientificConsultationService.GetById(
id.Value);
47 if (scientificConsultation == null)
52 if (!UserHasPermission(scientificConsultation))
57 return View(scientificConsultation);
61 public IActionResult Create() => View();
65 [ValidateAntiForgeryToken]
68 if (!ModelState.IsValid)
73 model.
Guide = _userProfileService.Get(User);
74 _scientificConsultationService.CreateItem(model);
75 return RedirectToAction(nameof(Index));
79 public IActionResult
Edit(Guid?
id)
86 var scientificConsultation = _scientificConsultationService.GetById(
id.Value);
87 if (scientificConsultation == null)
92 if (!UserHasPermission(scientificConsultation))
102 [ValidateAntiForgeryToken]
105 if (
id != model.
Id || !_scientificConsultationService.Exists(
id))
110 if (!UserHasPermission(_scientificConsultationService.GetById(
id)))
115 if (!ModelState.IsValid)
120 _scientificConsultationService.UpdateItem(model);
121 return RedirectToAction(nameof(Index));
132 var scientificConsultation = _scientificConsultationService.GetById(
id.Value);
133 if (scientificConsultation == null)
138 if (!UserHasPermission(scientificConsultation))
143 return View(scientificConsultation);
147 [HttpPost, ActionName(
"Delete")]
148 [ValidateAntiForgeryToken]
151 if (!_scientificConsultationService.Exists(
id))
156 if (!UserHasPermission(_scientificConsultationService.GetById(
id)))
161 _scientificConsultationService.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(scientificConsultation.
Guide) ||
172 scientificConsultation.
Guide.Id == user.Id;
IActionResult Details(Guid?id)
IActionResult Create(ScientificConsultationModel model)
IActionResult Edit(Guid?id)
IActionResult Index(ScientificConsultationIndexModel model)
IActionResult DeleteConfirmed(Guid id)
IEnumerable< DAL.Entities.ScientificConsultation > ScientificConsultations
IActionResult Delete(Guid?id)
virtual UserProfile.UserProfile Guide
IActionResult Edit(Guid id, ScientificConsultationEditModel model)
ScientificConsultationController(IScientificConsultationService scientificConsultationService, IUserProfileService userProfileService, IDepartmentService departmentService)
DAL.Entities.UserProfile.UserProfile Guide