Все еще изучаю веревки, поэтому я едва знакомлюсь с основами .Net и C #.
Во многих (но не во всех) моих контроллерах у меня есть один и тот же бит кода, используемый для определения, является ли пользователь действительным и может ли он получить доступ к странице.
public IActionResult MyPage(string id = null)
{
if (_currentUser == null) {
return RedirectToAction("Error", "Home");
}
// Either the parameter value or a session variable.
id = id ?? _currentUser.UserEmployeeNumber;
Employee employee = _employeeRepository.GetEmployeeById(id);
if (employee == null) {
return RedirectToAction("Error", "Team");
}
if (!_userChecks.IsAllowedAccess(_currentUser.UserEmployeeNumber, id)){
return RedirectToAction("AccessDenied", "Home");
}
// Begin actual page functionality
return View(myPageViewModel);
}
Как я могу извлечь это и сделать его многоразовым? Возможно, с конечной целью, похожей на:
public IActionResult MyPage(string id = null)
{
DoUserStuff(id);
// Page related functionality
return View(myPageViewModel);
}
Я борюсь с понятием, что этому вспомогательному методу может потребоваться вернуть перенаправление или id
и employee
, поскольку эти переменные будут использоваться в фактической структуре контроллера.
Заранее спасибо за ваши предложения и советы.