Esempio n. 1
0
        public Task HandleAsync(OrderApproved message, ISagaContext context)
        {
            _logger.LogInformation($"Completed a saga for order: {Data.OrderId}, customer: {Data.CustomerId}," +
                                   $"parcels: {string.Join(", ", Data.ParcelIds)}");

            return(CompleteAsync());
        }
 public void ProcessOrders()
 {
     foreach (var order in _orders)
     {
         //process orders
         Thread.Sleep(1000);
         OrderApproved?.Invoke(this, new OrderEventArgs(order.Id, order.CustomerName));
     }
 }
    public void Setup()
    {
        neverMatches  = new object();
        orderAccepted = new OrderAccepted();
        orderDeclined = new OrderDeclined();
        orderApproved = new OrderApproved();

        extractorBase    = new ExtractorUsingPatternMatching();
        extractorForeach = new ExtractorUsingForEach();
    }
        public void Handle(OrderApproved message)
        {
            Receive(message, m =>
            {
                OrderApproved = true;

                if (IsCancelled)
                {
                    ProcessCancellation();
                }
                else
                {
                    CheckForSuccess();
                }
            });
        }
Esempio n. 5
0
 public Task CompensateAsync(OrderApproved message, ISagaContext context)
 => Task.CompletedTask;
Esempio n. 6
0
 public Task HandleAsync(OrderApproved @event)
 => _coordinator.ProcessAsync(@event, SagaContext.Empty);
Esempio n. 7
0
 public void Handle(OrderApproved e)
 {
     this.billingSystem.NotifyAccounting(e.OrderId, "Approved");
 }