/// <summary> /// Экспортировать в Csv формат. /// </summary> private void ExportAsCsv() { var settings = new SaveFileDialogSettings { AddExtension = true, DefaultExt = ".csv", Filter = CsvFileFilter, InitialDirectory = Environment.CurrentDirectory, CheckFileExists = false, OverwritePrompt = true }; var result = this.viewService.ShowSaveFileDialog(PanelManager.Instance.PanelContainer, settings); if (!result.HasValue || !result.Value) { return; } var filename = settings.FileName; if (string.IsNullOrEmpty(filename)) { return; } var csvPrinter = new CsvReportPrinter(filename); csvPrinter.Print(this.Report); var message = LocalizationManager.Instance.LocalizeString("EXPORT_SUCCESS"); this.viewService.ShowMessageBox(message, icon: MessageBoxImage.Information); }
/// <summary> /// Сконфигурировать чекер. /// </summary> /// <param name="checker">Чекер.</param> public static void Configure(this ICodeChecker checker) { var section = (AgentConfigurationSection)ConfigurationManager.GetSection("agent"); log.Trace("Загрузка контекста приложения"); var applicationContextFactory = new ApplicationContextFactory(); checker.ContextManager.Load(applicationContextFactory); log.Trace("Загрузка контекста разработки"); var developmentContextFactory = new DevelopmentContextFactory(); foreach (ContextProviderElement element in section.ContextProviders) { switch (element.Provider) { case ContextProviderType.Package: log.Trace($"Найден загрузчик контекста из пакета {element.FilePath}"); var packageProvider = new PackageProvider(element.FilePath); developmentContextFactory.Providers.Add(packageProvider); break; case ContextProviderType.Database: log.Trace($"Найден загрузчик контекста из базы данных {element.ConnectionString}"); var databaseProvider = new DatabaseProvider(element.ConnectionString); developmentContextFactory.Providers.Add(databaseProvider); break; case ContextProviderType.Folder: log.Trace($"Найден загрузчик контекста из папки {element.FolderPath}"); var folderProvider = new FolderProvider(element.FolderPath); developmentContextFactory.Providers.Add(folderProvider); break; } } checker.ContextManager.Load(developmentContextFactory); log.Trace("Загрузка сборок с правилами анализа"); if (!string.IsNullOrEmpty(section.RuleLibraryPath)) { checker.RuleManager.LoadLibraries(section.RuleLibraryPath); } log.Trace("Загрузка генераторов отчетов"); if (section.ReportPrinters != null) { foreach (ReportPrinterElement element in section.ReportPrinters) { switch (element.Printer) { case ReportPrinterType.Console: var consoleReportPrinter = new ConsoleReportPrinter(); checker.ReportManager.Printers.Add(consoleReportPrinter); break; case ReportPrinterType.CSV: var csvReportPrinter = new CsvReportPrinter(element.FilePath); checker.ReportManager.Printers.Add(csvReportPrinter); break; } } } }