В настоящее время я занимаюсь рефакторингом своего проекта, и одна вещь, в которой я не совсем уверен, - как обрабатывать ошибки проверки бизнеса.
В настоящее время я использую класс RulesException из библиотеки xVal, я считаю, что эта библиотека больше не разрабатывается, поэтому мне, вероятно, нужно соответствующим образом обновить мой код ... вот пример одного из моих методов в домене модель:
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());
}
Что бы вы порекомендовали в качестве альтернативы, или вы бы порекомендовали мне придерживаться того, что у меня есть?