private async Task LoadDevelopmentAsync(IDevelopmentContextProvider provider, string rootNodeTitle) { PanelManager.Instance.PanelContainer.BusyIndicatorCaption = LocalizationManager.Instance.LocalizeString("BUSY_INDICATOR_LOAD_DEVELOPMENT_CAPTION"); PanelManager.Instance.PanelContainer.IsBusyIndicatorVisible = true; try { await Task.Run(() => { this.codeCheckerService.ClearProviders(); this.codeCheckerService.AddProvider(provider); }); this.componentTypes.Clear(); // TODO: Слишком сложно добраться до контекста разработки. Подумать, как сделать удобнее. var componentTypeNodes = this.sourceTreeGenerator.Generate(rootNodeTitle, this.codeCheckerService.CodeChecker.ContextManager.Context.Development); foreach (var componentTypeNode in componentTypeNodes) { this.componentTypes.Add(componentTypeNode); } } finally { PanelManager.Instance.PanelContainer.IsBusyIndicatorVisible = false; } }
/// <summary> /// Добавить провайдер разработки. /// </summary> /// <param name="provider">Провайдер разработки.</param> public void AddProvider(IDevelopmentContextProvider provider) { this.developmentContextFactory.Providers.Add(provider); this.codeChecker.ContextManager.Refresh(); }