public void PostTelemetryEvent(string telemetryEventName, Dictionary <string, object> telemetryProperties)
        {
            if (telemetrySession == null)
            {
                if (Process.GetCurrentProcess().ProcessName == "devenv")
                {
                    telemetrySession = TelemetryService.DefaultSession;
                }
                else
                {
                    if (string.IsNullOrEmpty(SerializedTelemetrySession))
                    {
                        telemetrySession           = TelemetryService.DefaultSession;
                        telemetrySession.IsOptedIn = true;
                        telemetrySession.Start();
                        SerializedTelemetrySession = telemetrySession.SerializeSettings();
                    }
                    else
                    {
                        telemetrySession = new TelemetrySession(SerializedTelemetrySession);
                        telemetrySession.Start();
                    }
                }
            }
            var prefix = telemetryEventName.Replace("/", ".") + ".";

            TelemetryEvent telemetryEvent = new TelemetryEvent(telemetryEventName);

            foreach (var property in telemetryProperties)
            {
                telemetryEvent.Properties[prefix + property.Key] = property.Value;
            }

            telemetrySession.PostEvent(telemetryEvent);
        }