private RillTransaction(IRill rill) { _sync = new SemaphoreSlim(1, 1); _rill = rill; _stage = new ConcurrentQueue <Event>(); _rillSubscription = Subscribe(); }
public OrderView(IRill rill) { Reference = rill.Reference; rill.Where <OrderPlaced>(ev => ev.Content.Amount > 1).Select(ev => ev.Content.Amount).Subscribe(amount => { }); rill.When <OrderPlaced>().Where(ev => ev.Content.Amount > 1).Select(ev => ev.Content.Amount).Subscribe(amount => { }); rill.When <OrderPlaced>().Subscribe(ev => { OrderNumber = ev.Content.OrderNumber; PlacedAt = ev.Content.PlacedAt; CustomerRef = ev.Content.CustomerRef; Amount = ev.Content.Amount; }); rill.When <OrderApproved>().Subscribe(ev => ApprovedAt = ev.Content.ApprovedAt); rill.When <OrderShipped>().Subscribe(ev => ShippedAt = ev.Content.ShippedAt); }
public static IRillTransaction Begin(IRill rill) => new RillTransaction(rill);