private static async Task PlaceAndApproveOrderAsync(IRillStore orderStore, RillReference reference) { using var rill = RillFactory.Synchronous(reference); var view = new OrderView(rill); using var transaction = RillTransaction.Begin(rill); rill.Emit(new OrderPlaced( "order#1", "customer#1", 100M, DateTime.UtcNow)); view.Dump("After OrderPlaced"); rill.Emit(new OrderApproved(view.OrderNumber !, DateTime.UtcNow)); view.Dump("After OrderApproved"); var commit = await transaction.CommitAsync(orderStore); Console.WriteLine($"Committed {commit}"); }
private static async Task ShipOrderAsync(IRillStore orderStore, RillReference reference) { using var rill = RillFactory.Synchronous(reference); var view = new OrderView(rill); foreach (var c in orderStore.ReadCommits(reference)) { rill.Emit(c); } using var transaction = RillTransaction.Begin(rill); rill.Emit(new OrderShipped(view.OrderNumber !, DateTime.UtcNow)); view.Dump("After OrderShipped"); var commit = await transaction.CommitAsync(orderStore); Console.WriteLine($"Committed {commit}"); }