protected override void RecordMessageInternal(
            string eventName,
            Guid activityId,
            Guid parentActivityId,
            EventLevel level,
            Keywords keywords,
            EventOpcode opcode,
            string jsonPayload)
        {
            EventSourceOptions options = this.CreateOptions(level, keywords, opcode);

            EventSource.SetCurrentThreadActivityId(activityId);

            if (string.IsNullOrEmpty(jsonPayload))
            {
                jsonPayload = "{}";
            }

            if (string.IsNullOrEmpty(this.ikey))
            {
                Payload payload = new Payload(jsonPayload, this.enlistmentId, this.mountId);
                this.eventSource.Write(eventName, ref options, ref activityId, ref parentActivityId, ref payload);
            }
            else
            {
                PayloadWithIKey payload = new PayloadWithIKey(jsonPayload, this.enlistmentId, this.mountId, this.ikey);
                this.eventSource.Write(eventName, ref options, ref activityId, ref parentActivityId, ref payload);
            }
        }
        protected override void RecordMessageInternal(TraceEventMessage message)
        {
            Guid   activityId       = message.ActivityId;
            Guid   parentActivityId = message.ParentActivityId;
            string jsonPayload      = message.Payload;

            EventSourceOptions options = this.CreateOptions(message.Level, message.Keywords, message.Opcode);

            EventSource.SetCurrentThreadActivityId(activityId);

            if (string.IsNullOrEmpty(jsonPayload))
            {
                jsonPayload = "{}";
            }

            if (string.IsNullOrEmpty(this.ikey))
            {
                Payload payload = new Payload(message.Payload, this.enlistmentId, this.mountId);
                this.eventSource.Write(message.EventName, ref options, ref activityId, ref parentActivityId, ref payload);
            }
            else
            {
                PayloadWithIKey payload = new PayloadWithIKey(jsonPayload, this.enlistmentId, this.mountId, this.ikey);
                this.eventSource.Write(message.EventName, ref options, ref activityId, ref parentActivityId, ref payload);
            }
        }