Esempio n. 1
0
            public async Task Send(SagaConsumeContext <TSaga, TMessage> context)
            {
                var instance = context.Saga;

                if (Log.IsDebugEnabled)
                {
                    Log.DebugFormat("SAGA:{0}:{1} Added {2}", TypeMetadataCache <TSaga> .ShortName,
                                    instance.CorrelationId,
                                    TypeMetadataCache <TMessage> .ShortName);
                }

                SagaConsumeContext <TSaga, TMessage> proxy =
                    new DynamoDbEventStoreSagaConsumeContext <TSaga, TMessage>(_connection, context, instance);

                await _next.Send(proxy).ConfigureAwait(false);

                if (!proxy.IsCompleted)
                {
                    var changes = instance.GetChanges();
                    await _connection.SaveEvensAsync(instance.CorrelationId, changes, _configuration);
                }
            }