public async Task Evaluate() { var builder = CreateRoutingSlipBuilder(_routingSlip); Build(builder); var routingSlip = builder.Build(); await _publisher.PublishRoutingSlipActivityFaulted(_executeContext.ActivityName, _executeContext.ExecutionId, _executeContext.Timestamp, _elapsed, _exceptionInfo, routingSlip.Variables, _activity.Arguments).ConfigureAwait(false); if (HasCompensationLogs(routingSlip)) { await _executeContext.Forward(routingSlip.GetNextCompensateAddress(), routingSlip).ConfigureAwait(false); } else { var faultedTimestamp = _executeContext.Timestamp + _elapsed; var faultedDuration = faultedTimestamp - routingSlip.CreateTimestamp; await _publisher.PublishRoutingSlipFaulted(faultedTimestamp, faultedDuration, routingSlip.Variables, _activityException).ConfigureAwait(false); } }
public async Task Evaluate() { RoutingSlipBuilder builder = CreateRoutingSlipBuilder(_routingSlip); Build(builder); RoutingSlip routingSlip = builder.Build(); await PublishActivityEvents(routingSlip, builder).ConfigureAwait(false); if (HasNextActivity(routingSlip)) { ISendEndpoint endpoint = await _context.GetSendEndpoint(routingSlip.GetNextExecuteAddress()).ConfigureAwait(false); await _context.Forward(endpoint, routingSlip).ConfigureAwait(false); } else { DateTime completedTimestamp = _context.Timestamp + _duration; TimeSpan completedDuration = completedTimestamp - _routingSlip.CreateTimestamp; await _publisher.PublishRoutingSlipCompleted(completedTimestamp, completedDuration, routingSlip.Variables).ConfigureAwait(false); } }