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;
        }