示例#1
0
        /// <summary>
        /// Get the default # of seconds between Watson reports from registry
        /// Reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\Telemetry /v FaultEventMinimumSecondsBetweenWatsonReports /t REG_DWORD /d 3600 /f
        /// </summary>
        /// <returns></returns>
        public override int FaultEventMinimumSecondsBetweenWatsonReports()
        {
            int result = 3600;

            TypeTools.TryConvertToInt(registryTools.GetRegistryValueFromCurrentUserRoot("Software\\Microsoft\\VisualStudio\\Telemetry", "FaultEventMinimumSecondsBetweenWatsonReports", (object)3600), out result);
            return(result);
        }
示例#2
0
        /// <summary>
        /// Get internal settings for the channel specified by its ID.
        /// There are 3 states could be:
        /// - explicitly enabled
        /// - explicitly disabled
        /// - undefined (no settings available)
        /// </summary>
        /// <param name="channelId"></param>
        /// <returns></returns>
        public virtual ChannelInternalSetting GetChannelSettings(string channelId)
        {
            CodeContract.RequiresArgumentNotNullAndNotEmpty(channelId, "channelId");
            if (!TypeTools.TryConvertToInt(registryTools.GetRegistryValueFromCurrentUserRoot("Software\\Coding4Fun\\VisualStudio\\Telemetry\\Channels", channelId, (object)(-1)), out int result))
            {
                result = -1;
            }
            ChannelInternalSetting channelInternalSetting = ChannelInternalSetting.Undefined;

            switch (result)
            {
            case 1:
                channelInternalSetting = ChannelInternalSetting.ExplicitlyEnabled;
                break;

            case 0:
                channelInternalSetting = ChannelInternalSetting.ExplicitlyDisabled;
                break;
            }
            if (channelInternalSetting != ChannelInternalSetting.Undefined)
            {
                diagnosticTelemetry.LogRegistrySettings(string.Format(CultureInfo.InvariantCulture, "Channel.{0}", new object[1]
                {
                    channelId
                }), channelInternalSetting.ToString());
            }
            return(channelInternalSetting);
        }
示例#3
0
        /// <summary>
        /// Get the default # of Watson reports per session from registry
        /// Reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\Telemetry /v FaultEventMaximumWatsonReportsPerSession /t REG_DWORD /d 100 /f
        /// </summary>
        /// <returns></returns>
        public override int FaultEventMaximumWatsonReportsPerSession()
        {
            int result = 0;

            TypeTools.TryConvertToInt(registryTools.GetRegistryValueFromCurrentUserRoot("Software\\Microsoft\\VisualStudio\\Telemetry", "FaultEventMaximumWatsonReportsPerSession", (object)10), out result);
            return(result);
        }
示例#4
0
        /// <summary>
        /// Get the sample rate for Fault Events from registry
        /// useful for testing
        /// Reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\Telemetry /v FaultEventWatsonSampleRate /t REG_DWORD /d 100 /f
        /// </summary>
        /// <returns></returns>
        public override int FaultEventWatsonSamplePercent()
        {
            int result = 0;

            TypeTools.TryConvertToInt(registryTools.GetRegistryValueFromCurrentUserRoot("Software\\Microsoft\\VisualStudio\\Telemetry", "FaultEventWatsonSampleRate", (object)10), out result);
            return(result);
        }
示例#5
0
 /// <summary>
 /// Try to get test AppId settings from the registry.
 /// </summary>
 /// <param name="testAppId"></param>
 /// <returns></returns>
 public bool TryGetTestAppId(out uint testAppId)
 {
     TypeTools.TryConvertToUInt(registryTools.GetRegistryValueFromCurrentUserRoot("Software\\Coding4Fun\\VisualStudio\\Telemetry", "UseTestAppId", (object)0), out testAppId);
     if (testAppId != 0)
     {
         diagnosticTelemetry.LogRegistrySettings("TestAppId", testAppId.ToString(CultureInfo.InvariantCulture));
     }
     return(testAppId != 0);
 }
示例#6
0
        /// <summary>
        /// Check whether user is forced set as external
        /// </summary>
        /// <returns></returns>
        public bool IsForcedUserExternal()
        {
            TypeTools.TryConvertToInt(registryTools.GetRegistryValueFromCurrentUserRoot("Software\\Coding4Fun\\VisualStudio\\Telemetry", "ForceExternalUser", (object)0), out int result);
            bool num = result == 1;

            if (num)
            {
                diagnosticTelemetry.LogRegistrySettings("ForcedExternalUser", "true");
            }
            return(num);
        }
示例#7
0
        /// <summary>
        /// Check, whether telemetry completely disabled
        /// Reg add HKEY_CURRENT_USER\Software\Coding4Fun\VisualStudio\Telemetry /v TurnOffSwitch /t REG_DWORD /d 1 /f
        /// </summary>
        /// <returns></returns>
        public bool IsTelemetryDisabledCompletely()
        {
            TypeTools.TryConvertToInt(registryTools.GetRegistryValueFromCurrentUserRoot("Software\\Coding4Fun\\VisualStudio\\Telemetry", "TurnOffSwitch", (object)0), out int result);
            bool num = result == 1;

            if (num)
            {
                diagnosticTelemetry.LogRegistrySettings("CompletelyDisabledTelemetry", "true");
            }
            return(num);
        }
示例#8
0
        /// <summary>
        /// Try to get test hostName from the registry.
        /// </summary>
        /// <param name="testHostName"></param>
        /// <returns></returns>
        public bool TryGetTestHostName(out string testHostName)
        {
            testHostName = TypeTools.ConvertToString(registryTools.GetRegistryValueFromCurrentUserRoot("Software\\Coding4Fun\\VisualStudio\\Telemetry", "UseTestHostName", (object)null));
            bool num = !string.IsNullOrEmpty(testHostName);

            if (num)
            {
                diagnosticTelemetry.LogRegistrySettings("TestHostName", testHostName);
            }
            return(num);
        }
示例#9
0
 /// <summary>
 /// Check, whether passed value is match condition
 /// </summary>
 /// <param name="valueToCompare"></param>
 /// <returns></returns>
 public bool IsMatch(object valueToCompare)
 {
     if (valueToCompare == null)
     {
         return(false);
     }
     if (!TypeTools.IsNumericType(valueToCompare.GetType()))
     {
         return(false);
     }
     return(Convert.ToDouble(valueToCompare, null) > Gt);
 }
示例#10
0
        /// <summary>
        /// Check whether local logger is enabled
        /// </summary>
        /// <returns></returns>
        public bool IsLocalLoggerEnabled()
        {
            bool flag = false;

            if (Platform.IsWindows)
            {
                TypeTools.TryConvertToInt(registryTools.GetRegistryValueFromCurrentUserRoot("Software\\Coding4Fun\\VisualStudio\\Telemetry", "LocalLoggerEnabled", (object)0), out int result);
                flag = (result == 1);
            }
            if (flag)
            {
                diagnosticTelemetry.LogRegistrySettings("LocalLoggerEnabled", "true");
            }
            return(flag);
        }
示例#11
0
 /// <summary>
 /// Creates the Pii Object and converts to string. Throws if val is null.
 /// </summary>
 /// <param name="val"></param>
 public TelemetryPiiProperty(object val)
 {
     CodeContract.RequiresArgumentNotNull <object>(val, "val");
     RawValue    = val;
     StringValue = TypeTools.ConvertToString(val);
 }