public HostCompensateContext(HostInfo host, ConsumeContext <RoutingSlip> context) : base(new PayloadCacheScope(context), context.CancellationToken) { _host = host; _context = context; _timer = Stopwatch.StartNew(); _startTimestamp = DateTime.UtcNow; _routingSlip = new SanitizedRoutingSlip(context); if (_routingSlip.CompensateLogs.Count == 0) { throw new ArgumentException("The routingSlip must contain at least one activity log"); } _compensateLog = _routingSlip.CompensateLogs.Last(); _activityLog = _routingSlip.ActivityLogs.SingleOrDefault(x => x.ExecutionId == _compensateLog.ExecutionId); if (_activityLog == null) { throw new RoutingSlipException("The compensation log did not have a matching activity log entry: " + _compensateLog.ExecutionId); } _data = _routingSlip.GetCompensateLogData <TLog>(); _publisher = new RoutingSlipEventPublisher(this, _routingSlip); }
public CompensatedWithVariablesCompensationResult(CompensateContext <TLog> compensateContext, IRoutingSlipEventPublisher publisher, CompensateLog compensateLog, RoutingSlip routingSlip, IDictionary <string, object> variables) : base(compensateContext, publisher, compensateLog, routingSlip) { _variables = variables; }
public CompensatedCompensationResult(CompensateContext <TLog> compensateContext, IRoutingSlipEventPublisher publisher, CompensateLog compensateLog, RoutingSlip routingSlip) { _compensateContext = compensateContext; _publisher = publisher; _compensateLog = compensateLog; _routingSlip = routingSlip; _duration = _compensateContext.Elapsed; }
public SanitizedCompensateLog(CompensateLog compensateLog) { if (compensateLog.Address == null) { throw new SerializationException("An CompensateLog CompensateAddress is required"); } ExecutionId = compensateLog.ExecutionId; Address = compensateLog.Address; Data = compensateLog.Data ?? GetEmptyObject(); }
public FailedCompensationResult(CompensateContext <TLog> compensateContext, IRoutingSlipEventPublisher publisher, CompensateLog compensateLog, RoutingSlip routingSlip, Exception exception) { _compensateContext = compensateContext; _publisher = publisher; _compensateLog = compensateLog; _routingSlip = routingSlip; _exception = exception; _duration = _compensateContext.ElapsedTime; }
public HostCompensateContext(ConsumeContext <RoutingSlip> context) : base(context) { if (RoutingSlip.CompensateLogs.Count == 0) { throw new ArgumentException("The routingSlip must contain at least one activity log"); } _compensateLog = RoutingSlip.CompensateLogs.Last(); _activityLog = RoutingSlip.ActivityLogs.SingleOrDefault(x => x.ExecutionId == _compensateLog.ExecutionId); if (_activityLog == null) { throw new RoutingSlipException("The compensation log did not have a matching activity log entry: " + _compensateLog.ExecutionId); } _data = RoutingSlip.GetCompensateLogData <TLog>(); }