我目前正在重构我的项目,我不太确定的一件事是如何处理业务验证错误。
目前我正在使用 xVal 库中的 RulesException 类,我相信这个库不再被开发,所以我可能需要相应地更新我的代码......这是我在域模型上的一种方法的示例:
public virtual void AddComment(ProfileComment comment)
{
// ensure account is active before sending a message
if (comment.FromAccount.AccountStatus != Enums.Common.AccountStatus.Active) throw new RulesException("", "Your account is not active");
// throw exception if user has blocked this user
if (HasUserBeenBlocked(comment.FromAccount)) throw new RulesException("", "User has blocked this action being performed.");
TotalComments++;
Comments.Add(comment);
}
然后我在控制器级别捕获这个异常,如下所示:
// process adding new comment
try
{
accountTasks.PostProfileComment(user, account, profileComment);
}
catch (RulesException ex)
{
ex.AddModelStateErrors(ModelState);
}
if (!ModelState.IsValid)
{
return Json(ModelState.Errors());
}
你会推荐什么作为替代方案,或者你会推荐我坚持我所拥有的?