我試圖圍繞CQRS我的頭。我從提供的代碼示例here中繪製。請溫柔我對這種模式很陌生。CQRS - 當命令無法解析到域
我正在查看登錄方案。我喜歡這個場景,因爲它在我讀過的任何例子中都沒有被真正展示過。在這種情況下,我不知道用戶的聚合ID是什麼,或者即使有一個,因爲我開始的是用戶名和密碼。
在fohjin例子事件總是從域發射(如果需要)和命令處理程序調用上的域一些方法。但是,如果用戶登錄無效,我沒有任何域可以調用任何東西。同樣,大多數(如果不是全部)在fohjin項目中定義的基本Command/Event類都傳遞一個聚集ID。
在事件的情況下LogonFailure我可能要更新LogonAudit報告。
所以我的問題是:如何處理命令不解析爲一個特定的彙總?這將如何流動?
public void Execute(UserLogonCommand command)
{
var user = null;//user looked up by username somehow, should i query the report database to resolve the username to an id?
if (user == null || user.Password != command.Password)
;//What to do here? I want to raise an event somehow that doesn't target a specific user
else
user.LogonSuccessful();
}
我在CQRS + ES上寫了一個MembershipProvider,如果你[想看一看](https://github.com/Iridio/CQRS-ES_MembershipProvider) – Iridio 2012-07-20 11:49:09
謝謝,這對我有幫助。它似乎忽略登錄嘗試的記錄,但不匹配現有的用戶名。這是我的問題的核心 – Sam 2012-07-24 04:38:28
失敗的嘗試存儲在Faliedpassword嘗試和FailedPasswordQuestionAndAnswerAtwerpt和相對日期時間 – Iridio 2012-07-24 06:37:12