private LogicalOperation(object data, Guid activityId) { this.data = data; LogicalOperation.StartLogicalOperation(this.data); this.previousActivityId = Trace.CorrelationManager.ActivityId; Trace.CorrelationManager.ActivityId = activityId; }
private LogicalOperation(object data) { this.data = data; LogicalOperation.StartLogicalOperation(data); this.previousActivityId = Trace.CorrelationManager.ActivityId; if (Trace.CorrelationManager.ActivityId == Guid.Empty) { Trace.CorrelationManager.ActivityId = Guid.NewGuid(); } }
private void Dispose(bool disposing) { if (disposing) { if (!LogicalOperation.IsRunningInAdapter && LogicalOperation.GetLogicalOperationStack().Peek() != this.data) { throw new InvalidOperationException("Logical operation stack has been corrupted"); } LogicalOperation.StopLogicalOperation(); Trace.CorrelationManager.ActivityId = this.previousActivityId; } }
private static IImmutableStack <object> GetLogicalOperationStack() { IImmutableStack <object> empty = (IImmutableStack <object>)CallContext.LogicalGetData(LogicalOperation.CallContextDataSlotName); if (empty == null) { empty = ImmutableLogicalOperationStack <object> .Empty; if (LogicalOperation.IsRunningInAdapter) { empty = empty.Push(new object()); } LogicalOperation.UpdateImmutableStack(empty); } return(empty); }
public static void Log(this ILogger logger, TraceEventType eventType, string message, string category) { if (category == null) { logger.WriteEntry(new LogEntry() { EventType = eventType, Message = message }); } else { using (LogicalOperation.Create(category, new object[0])) logger.WriteEntry(new LogEntry() { EventType = eventType, Message = message }); } }
private static void StopLogicalOperation() { LogicalOperation.UpdateImmutableStack(LogicalOperation.GetLogicalOperationStack().Pop()); }
private static void StartLogicalOperation(object data) { LogicalOperation.UpdateImmutableStack(LogicalOperation.GetLogicalOperationStack().Push(data)); }