Skip to content

Instantly share code, notes, and snippets.

@andreasohlund
Created October 8, 2012 15:12
Show Gist options
  • Select an option

  • Save andreasohlund/3853040 to your computer and use it in GitHub Desktop.

Select an option

Save andreasohlund/3853040 to your computer and use it in GitHub Desktop.
public class ShippingPolicy : Saga<ShippingPolicyData>,
IAmStartedByMessages<OrderAccepted>,
IHandleMessages<OrderBilled>
{
public void Handle(OrderAccepted message)
{
Data.OrderId = message.OrderId;
Data.Accepted = true;
DispatchOrder();
}
public void Handle(OrderBilled message)
{
Data.OrderId = message.OrderId;
Data.Billed = true;
DispatchOrder();
}
void DispatchOrder()
{
if (Data.Accepted && Data.Billed)
Bus.Send<ShipOrder>(m => m.OrderId = Data.OrderId);
}
public override void ConfigureHowToFindSaga()
{
ConfigureMapping<OrderAccepted>(s=>s.OrderId,m=>m.OrderId);
ConfigureMapping<OrderBilled>(s => s.OrderId, m => m.OrderId);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment