Jam*_*mes 6 validation asp.net-mvc poco asp.net-mvc-3
我有以下设置:MVC>服务>存储库.现在我想让用户能够为文档添加注释.只有与文档关联的用户(作为所有者或审阅者)才能添加Notes,因此在我的NoteService中,我执行以下操作以确保用户对所选文档具有权限:
public Note GetNewNote(int documentID)
{
if (!userHasAccess(Thread.CurrentPrincipal.Identity.Name))
throw new BusinessLogicException();
// Other stuff here...
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,我应该在哪里定义userHasAccess方法?在NoteService中没有任何意义,因为它正在检查Document.我可以在DocumentService中定义它,但是然后NoteService将需要访问它,这似乎引入了更多的耦合.
对我来说,在Document POCO本身上定义它然后调用document.userHasAccess(...)更有意义.这是一个好的做法还是域名POCO应限于简单的属性?我担心这确实是验证的一部分,通过将方法放在POCO中,我将分离Service和POCO之间的验证.
我要确保的是我的应用程序易于维护和测试.关于如何解决这个问题的任何建议都将非常感谢!
| 归档时间: |
|
| 查看次数: |
2223 次 |
| 最近记录: |