2 using Microsoft.AspNetCore.Authorization;
3 using Microsoft.AspNetCore.Mvc;
25 _oppositionService = oppositionService;
26 _userProfileService = userProfileService;
27 _departmentService = departmentService;
34 model.
Count = _oppositionService.GetCountByRole(User);
46 var opposition = _oppositionService.GetById(
id.Value);
47 if (opposition == null)
52 if (!UserHasPermission(opposition))
57 return View(opposition);
61 public IActionResult Create() => View();
65 [ValidateAntiForgeryToken]
68 if (!ModelState.IsValid)
73 model.
Opponent = _userProfileService.Get(User);
74 _oppositionService.CreateItem(model);
75 return RedirectToAction(nameof(Index));
79 public IActionResult
Edit(Guid?
id)
86 var opposition = _oppositionService.GetById(
id.Value);
87 if (opposition == null)
92 if (!UserHasPermission(opposition))
102 [ValidateAntiForgeryToken]
105 if (
id != model.
Id || !_oppositionService.Exists(
id))
110 if (!UserHasPermission(_oppositionService.GetById(
id)))
115 if (!ModelState.IsValid)
120 _oppositionService.UpdateItem(model);
121 return RedirectToAction(nameof(Index));
132 var opposition = _oppositionService.GetById(
id.Value);
133 if (opposition == null)
138 if (!UserHasPermission(opposition))
143 return View(opposition);
147 [HttpPost, ActionName(
"Delete")]
148 [ValidateAntiForgeryToken]
151 if (!_oppositionService.Exists(
id))
156 if (!UserHasPermission(_oppositionService.GetById(
id)))
161 _oppositionService.DeleteById(
id);
162 return RedirectToAction(nameof(Index));
165 private bool UserHasPermission(
Opposition opposition)
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(opposition.
Opponent) ||
virtual UserProfile.UserProfile Opponent
IActionResult Details(Guid?id)
IActionResult Edit(Guid id, OppositionEditModel model)
IEnumerable< DAL.Entities.Opposition > Oppositions
IActionResult Index(OppositionIndexModel model)
IActionResult Create(OppositionModel model)
IActionResult Edit(Guid?id)
IActionResult DeleteConfirmed(Guid id)
OppositionController(IOppositionService oppositionService, IDepartmentService departmentService, IUserProfileService userProfileService)
IActionResult Delete(Guid?id)
DAL.Entities.UserProfile.UserProfile Opponent