コード例 #1
0
        internal static ICommandDeliverer <TAggregate> InterceptDeliver <TAggregate>(
            this ICommandDeliverer <TAggregate> deliverer,
            ScheduledCommandInterceptor <TAggregate> deliver = null)
        {
            deliver = deliver ?? (async(c, next) => await next(c));

            return(Create <TAggregate>(
                       async command => await deliver(command, async c => await deliverer.Deliver(c))));
        }
コード例 #2
0
ファイル: Storage.cs プロジェクト: crazyants/Its.Cqrs
        internal static async Task DeserializeAndDeliverScheduledCommand <TAggregate>(
            ScheduledCommand scheduled,
            ICommandDeliverer <TAggregate> scheduler)
        {
            try
            {
                var command = scheduled.ToScheduledCommand <TAggregate>();
                await scheduler.Deliver(command);

                scheduled.Result = command.Result;
            }
            catch (Exception exception)
            {
                scheduled.Result = new CommandFailed(scheduled, exception);
            }
        }