public BicepConfigChangeHandler(ICompilationManager compilationManager, IConfigurationManager configurationManager, ILinterRulesProvider linterRulesProvider, ITelemetryProvider telemetryProvider, IWorkspace workspace) { this.compilationManager = compilationManager; this.configurationManager = configurationManager; this.linterRulesProvider = linterRulesProvider; this.telemetryProvider = telemetryProvider; this.workspace = workspace; }
public BicepCompilationManager( ILanguageServerFacade server, ICompilationProvider provider, IWorkspace workspace, IFileResolver fileResolver, IModuleRestoreScheduler scheduler, IConfigurationManager configurationManager, ITelemetryProvider telemetryProvider, ILinterRulesProvider LinterRulesProvider) { this.server = server; this.provider = provider; this.workspace = workspace; this.fileResolver = fileResolver; this.scheduler = scheduler; this.configurationManager = configurationManager; this.TelemetryProvider = telemetryProvider; this.LinterRulesProvider = LinterRulesProvider; }
public static IEnumerable <BicepTelemetryEvent> GetTelemetryEventsForBicepConfigChange(RootConfiguration prevConfiguration, RootConfiguration curConfiguration, ILinterRulesProvider linterRulesProvider) { bool prevLinterEnabledSettingValue = prevConfiguration.Analyzers.GetValue(LinterEnabledSetting, true); bool curLinterEnabledSettingValue = curConfiguration.Analyzers.GetValue(LinterEnabledSetting, true); if (!prevLinterEnabledSettingValue && !curLinterEnabledSettingValue) { return(Enumerable.Empty <BicepTelemetryEvent>()); } List <BicepTelemetryEvent> telemetryEvents = new(); if (prevLinterEnabledSettingValue != curLinterEnabledSettingValue) { var telemetryEvent = BicepTelemetryEvent.CreateOverallLinterStateChangeInBicepConfig(prevLinterEnabledSettingValue.ToString().ToLowerInvariant(), curLinterEnabledSettingValue.ToString().ToLowerInvariant()); telemetryEvents.Add(telemetryEvent); } else { foreach (var kvp in linterRulesProvider.GetLinterRules()) { string prevLinterRuleDiagnosticLevelValue = prevConfiguration.Analyzers.GetValue(kvp.Value, "warning"); string curLinterRuleDiagnosticLevelValue = curConfiguration.Analyzers.GetValue(kvp.Value, "warning"); if (prevLinterRuleDiagnosticLevelValue != curLinterRuleDiagnosticLevelValue) { var telemetryEvent = BicepTelemetryEvent.CreateLinterRuleStateChangeInBicepConfig(kvp.Key, prevLinterRuleDiagnosticLevelValue, curLinterRuleDiagnosticLevelValue); telemetryEvents.Add(telemetryEvent); } } } return(telemetryEvents); }
public static void SendTelemetryOnBicepConfigChange(RootConfiguration prevConfiguration, RootConfiguration curConfiguration, ILinterRulesProvider linterRulesProvider, ITelemetryProvider telemetryProvider) { foreach (var telemetryEvent in GetTelemetryEventsForBicepConfigChange(prevConfiguration, curConfiguration, linterRulesProvider)) { telemetryProvider.PostEvent(telemetryEvent); } }