public Auditable(AuditEvent type, List <Audit> auditTrail, IDateTimeProvider dateTimeProvider, Node node) { _dateTimeProvider = dateTimeProvider; var started = _dateTimeProvider.Now(); _audit = new Audit(type, started); _audit.Node = node; auditTrail.Add(_audit); var diagnosticName = type.GetAuditDiagnosticEventName(); _activity = diagnosticName != null?DiagnosticSource.Diagnose(diagnosticName, _audit) : null; }