public static void PopulateTimedOperationEvent(this TimedOperationOpenSchema timedopEvent,
                                                       EventTelemetry eventTelemetry)
        {
            if (eventTelemetry.GetProperty(OpenSchemaProps.StartTime) != null)
            {
                timedopEvent.StartTime = Convert.ToDateTime(eventTelemetry.GetProperty(OpenSchemaProps.StartTime));
            }
            if (eventTelemetry.GetProperty(OpenSchemaProps.EndTime) != null)
            {
                timedopEvent.EndTime = Convert.ToDateTime(eventTelemetry.GetProperty(OpenSchemaProps.EndTime));
            }
            if (eventTelemetry.GetProperty(OpenSchemaProps.DurationInMs) != null)
            {
                timedopEvent.DurationInMs = Convert.ToInt32(eventTelemetry.GetProperty(OpenSchemaProps.DurationInMs));
            }

            timedopEvent.OperationId = eventTelemetry.GetProperty(OpenSchemaProps.OperationId);
        }
예제 #2
0
        public IOutputBase ToOutput(EventTelemetry eventTelemetry, string schemaName)
        {
            IOutputBase eventBlock = null;

            // Assume Filter has already been applied!
            if (!string.IsNullOrEmpty(schemaName))
            {
                switch (schemaName)
                {
                case LogTypes.Log:
                    eventBlock = new LogOpenSchema();
                    break;

                case LogTypes.Exceptions:
                    eventBlock = new ExceptionsOpenSchema();
                    break;

                case LogTypes.TimedOperation:
                    eventBlock = new TimedOperationOpenSchema();
                    break;

                default:
                    throw new ArgumentException("Unknown OpenSchema Type");
                }

                Dictionary <string, object> customProperties = new Dictionary <string, object>();
                foreach (string property in eventTelemetry.Properties.Keys)
                {
                    if (property.StartsWith(TelemetryProps.CustomPropertyPrefix))
                    {
                        customProperties.Add(property.Remove(0, TelemetryProps.CustomPropertyPrefix.Length), eventTelemetry.Properties[property]);
                    }
                }

                // BaseEvent Properties
                var baseEvent = eventBlock as BaseOpenSchema;
                baseEvent.PopulateEventBlock(eventTelemetry, customProperties);
                // WithMessage Properties
                var messageEvent = eventBlock as BaseOpenSchemaWithMessage;
                messageEvent?.PopulateMessageEvent(eventTelemetry);

                var logEvent = eventBlock as LogOpenSchema;
                if (logEvent != null)
                {
                    logEvent.PopulateLogEvent(eventTelemetry);
                    return(eventBlock);
                }
                var exceptionEvent = eventBlock as ExceptionsOpenSchema;
                if (exceptionEvent != null)
                {
                    exceptionEvent.PopulateExceptionsEvent(eventTelemetry);
                    return(eventBlock);
                }
                var timedOperationEvent = eventBlock as TimedOperationOpenSchema;
                if (timedOperationEvent != null)
                {
                    timedOperationEvent.PopulateTimedOperationEvent(eventTelemetry);
                    return(eventBlock);
                }
            }

            return(eventBlock);
        }