J Oliver CommonDomain传奇样本

时间:2013-01-28 20:57:59

标签: cqrs

我正在玩Jonathan Oliver的CommonDomain Saga Implementation。对于我来说,我实现了一个简单的传奇以及一个内存传奇存储库。我这样做是为了真正理解传奇在各种场景下的运作方式。在我加入NSB或其他框架之前,我需要使用它来更好地理解这个概念。

我不确定我是否正确使用此功能。 CommonDomain saga没有测试或示例实现。我使用saga作为它转换事件的事件处理程序。

这有意义吗?任何反馈都将不胜感激。

public class QueryExecutionSaga : SagaBase<IEvent<QueryExecutionID>>,
    IEventHandler<QueryExecutedNow>,
    IEventHandler<QueryExecutionCancelled>
{
    public QueryID QueryID { get; private set; }
    public QueryExecutionID QueryExecutionID { get; private set; }

    public QueryExecutionSaga()
    {
        Register<QueryExecutedNow>(Handle);
        Register<QueryExecutionCancelled>(Handle);
    }

    #region Implementation of IEventHandler<in QueryExecutedNow>

    public void Handle(QueryExecutedNow theEvent)
    {
        ID = new SagaID(theEvent.Identity.Identifier);

        QueryID = theEvent.QueryID;
        QueryExecutionID = theEvent.Identity;

        // send prepare query results command
    }

    #endregion

    #region Implementation of IEventHandler<in QueryExecutionC.ancelled>

    public void Handle(QueryExecutionCancelled theEvent)
    {
        // send notify sender command
    }

    #endregion

    public void Handle(IEvent<IIdentity> e)
    {
        Transition(e);
    }
}

0 个答案:

没有答案