たくさんのコードをAccountController
プロバイダーAuthentication
クラスにリファクタリングしました。このチェックを実行するために使用されるコントローラー:
if (_memberRepository.GetByUserName(model.UserName) != null)
{
ModelState.AddModelError("", "The user name you have chosen already exists. Please choose another.");
return View(model);
}
これをクラスに移動しましAuthentication
たが、にアクセスできませんModelState
。
if (_memberRepository.GetByUserName(newMember.LoginName) != null)
{
// Panic stations!!
}
するべきか:
a)新しいメソッドのステータスまたは結果を記述したクラスを返しますか?これは物事を複雑にしすぎているように感じます。b)重複するユーザー名を登録することに異議を唱えることを示す例外(おそらくArgumentException?)をスローしますか?これは迅速かつ簡単ですが、ビジネスロジックの例外を使用することに国境を接しています
すでに存在しているMembershipCreateUserException
ようですが、組み込みのメンバーシップ機能を使用しないようにしたいと思います。OOは良くなく、使っていると汚れてしまいます。