private static void SetAnalysisTaskSettingsInfo(XElement settingsBundleRoot, AnalysisTaskSettingsInfo analysisSettings) { foreach (var settingsBundle in settingsBundleRoot.Elements()) { if (string.Compare(settingsBundle.Name.LocalName, "SettingsBundle", StringComparison.InvariantCultureIgnoreCase) == 0) { foreach (var settingsGroup in settingsBundle.Elements()) { if (string.Compare(settingsGroup.Name.LocalName, "SettingsGroup", StringComparison.InvariantCultureIgnoreCase) == 0) { if (!settingsGroup.HasAttributes) { continue; } var settingsBundleId = GetSettingsBundleAttributeValue(settingsGroup, "Id"); if (settingsBundleId != "AnalysisTaskSettings") { continue; } SetAnalysisTaskSettingsAttributes(settingsGroup, analysisSettings); } } } } }
private static void SetAnalysisTaskSettingsAttributes(XElement settingsGroup, AnalysisTaskSettingsInfo analysisSettings) { foreach (var setting in settingsGroup.Elements()) { if (string.Compare(setting.Name.LocalName, "Setting", StringComparison.InvariantCultureIgnoreCase) == 0) { if (!setting.HasAttributes) { continue; } foreach (var attribute in setting.Attributes()) { if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 && string.Compare(attribute.Value, "ReportCrossFileRepetitions", StringComparison.InvariantCultureIgnoreCase) == 0) { bool.TryParse(setting.Value, out var value); analysisSettings.ReportCrossFileRepetitions = value; } if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 && string.Compare(attribute.Value, "ReportInternalFuzzyMatchLeverage", StringComparison.InvariantCultureIgnoreCase) == 0) { bool.TryParse(setting.Value, out var value); analysisSettings.ReportInternalFuzzyMatchLeverage = value; } if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 && string.Compare(attribute.Value, "ReportLockedSegmentsSeparately", StringComparison.InvariantCultureIgnoreCase) == 0) { bool.TryParse(setting.Value, out var value); analysisSettings.ReportLockedSegmentsSeparately = value; } if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 && string.Compare(attribute.Value, "ExcludeLockedSegments", StringComparison.InvariantCultureIgnoreCase) == 0) { bool.TryParse(setting.Value, out var value); analysisSettings.ExcludeLockedSegments = value; } if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 && string.Compare(attribute.Value, "ExportFrequentSegments", StringComparison.InvariantCultureIgnoreCase) == 0) { bool.TryParse(setting.Value, out var value); analysisSettings.ExportFrequentSegments = value; } if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 && string.Compare(attribute.Value, "ExportUnknownSegments", StringComparison.InvariantCultureIgnoreCase) == 0) { bool.TryParse(setting.Value, out var value); analysisSettings.ExportUnknownSegments = value; } if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 && string.Compare(attribute.Value, "UnknownSegmentsMaximumMatchValue", StringComparison.InvariantCultureIgnoreCase) == 0) { int.TryParse(setting.Value, out var value); analysisSettings.UnknownSegmentsMaximumMatchValue = value; } if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 && string.Compare(attribute.Value, "FrequentSegmentsNoOfOccurrences", StringComparison.InvariantCultureIgnoreCase) == 0) { int.TryParse(setting.Value, out var value); analysisSettings.FrequentSegmentsNoOfOccurrences = value; } } } } }
private static void AssignGeneralAnalysisTaskSettings(XElement project, string generalSettingsBundleGuid, AnalysisTaskSettingsInfo analysisSettings) { foreach (var element in project.Elements()) { if (string.Compare(element.Name.LocalName, "SettingsBundles", StringComparison.InvariantCultureIgnoreCase) == 0) { foreach (var settingsBundle in element.Elements()) { if (string.Compare(settingsBundle.Name.LocalName, "SettingsBundle", StringComparison.InvariantCultureIgnoreCase) == 0) { var bundleGuid = GetSettingsBundleAttributeValue(settingsBundle, "Guid"); if (string.Compare(bundleGuid, generalSettingsBundleGuid, StringComparison.InvariantCultureIgnoreCase) == 0) { SetAnalysisTaskSettingsInfo(settingsBundle, analysisSettings); } } } } } }