예제 #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);
        }

        await next();
    }
예제 #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);
    }