Would that be a good approach?
public OrderSaga(IServiceBus bus, IQuery<Order> orders)
: base(bus, orders)
{
_bus = bus;
if (_orderId > 0)
State = orders.Get(_orderId);
}
#region InitiatedBy<StartOrderSaga> Members
public void Consume(StartOrderSaga message)
{
// the order is already persisted, so we don't care for
that right now
_bus.DelaySend(DateTime.Now.Add(_timeToWaitForPayment),
new CheckOrderWasPaid
{
OrderId = message.OrderId,
CorrelationId = Id
});
_orderId = message.OrderId;
_bus.Send(new OrderCreated {OrderId = message.OrderId});
State.State = OrderStates.New;
}
#endregion
On Fri, May 21, 2010 at 8:58 AM, Jan Limpens <[email protected]> wrote:
> On Fri, May 21, 2010 at 4:44 AM, Ayende Rahien <[email protected]> wrote:
>> inline
>> It may send messages such as:
>> NotifyUserAboutSuccessfulOrder, NotifyUserAboutDeclinedCreditCard
>> RefreshLostSalesReport, RefreshTotalMoneyMadeRport
>
> That's interesting how you send very implementation detailed messages
> there. I had thought one would send, following your examples, a
> SuccessFullOrderMessage and have multiple subscribers / services to
> it, like a WhenOrderWasSuccessful.RefreshTotalMoneyMadeReportService
> and a WhenOrderWasSuccessful.NotifyUserWithEmailService. This would
> allow to plug in and out actions without touching the actual work
> flow.
> What's the reason(ing) behind this?
>
> Are there any examples around, that you would know of, showing how to
> link an entity to a Saga? Never did that before and there might be
> common pit falls.
>
> Thanks!
>
> --
> Jan
>
--
Jan
--
You received this message because you are subscribed to the Google Groups
"Rhino Tools Dev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rhino-tools-dev?hl=en.