У меня есть следующие настройки: MVC> Services> Repositories. Теперь я хочу, чтобы пользователи могли добавлять примечание к документу. Только пользователи, связанные с документом (как владельцы или рецензенты), могут добавлять заметки, поэтому в моем NoteService я делаю следующее, чтобы убедиться, что у пользователя есть разрешение на выбранный документ:
public Note GetNewNote(int documentID)
{
if (!userHasAccess(Thread.CurrentPrincipal.Identity.Name))
throw new BusinessLogicException();
// Other stuff here...
}
Мой вопрос: где я должен определить метод userHasAccess? Это не имеет смысла в NoteService, поскольку он проверяет документ. Я мог бы определить это в DocumentService, но тогда NoteService потребуется доступ к этому, который, кажется, вводит больше связи.
Для меня имеет смысл определить его в самом документе POCO, а затем вызвать document.userHasAccess (...). Будет ли это хорошей практикой или домен POCO должен быть ограничен простыми свойствами? Я обеспокоен тем, что это действительно часть проверки и что, поместив метод в POCO, я разделяю проверку между Service и POCO.
Я стараюсь обеспечить простоту обслуживания и тестирования моего приложения. Любые предложения о том, как мне решить эту проблему, будут очень полезны!