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;
 }
Пример #2
0
        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;
        }
Пример #3
0
        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);
        }
Пример #4
0
 public static void SendTelemetryOnBicepConfigChange(RootConfiguration prevConfiguration, RootConfiguration curConfiguration, ILinterRulesProvider linterRulesProvider, ITelemetryProvider telemetryProvider)
 {
     foreach (var telemetryEvent in GetTelemetryEventsForBicepConfigChange(prevConfiguration, curConfiguration, linterRulesProvider))
     {
         telemetryProvider.PostEvent(telemetryEvent);
     }
 }