示例#1
0
        public async Task Process(OutgoingStepContext context, Func <Task> next)
        {
            var transportMessage = context.Load <TransportMessage>();

            if (IsPublishedMessage(transportMessage))
            {
                var transactionContext = context.Load <ITransactionContext>();

                var clone = transportMessage.Clone();

                _auditingHelper.SetCommonHeaders(clone);

                await _transport.Send(_auditingHelper.AuditQueue, clone, transactionContext).ConfigureAwait(false);
            }

            await next().ConfigureAwait(false);
        }
示例#2
0
        public async Task Process(IncomingStepContext context, Func <Task> next)
        {
            var begin = _rebusTime.Now;

            await next();

            var transactionContext = context.Load <ITransactionContext>();
            var transportMessage   = context.Load <TransportMessage>();

            var clone = transportMessage.Clone();

            _auditingHelper.SetCommonHeaders(clone);

            clone.Headers[AuditHeaders.HandleTime] = begin.ToString("O");

            await _transport.Send(_auditingHelper.AuditQueue, clone, transactionContext);
        }