private static void SetSourceContentSettingsInfo(XElement settingsBundleRoot, SourceContentSettingsInfo sourceContentSettings) { 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 != "SourceContentSettings") { continue; } SetSourceContentSettingsAttributes(settingsGroup, sourceContentSettings); } } } } }
private static void SetSourceContentSettingsAttributes(XElement settingsGroup, SourceContentSettingsInfo sourceContentSettings) { 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, "AllowSourceEditing", StringComparison.InvariantCultureIgnoreCase) == 0) { bool.TryParse(setting.Value, out var value); sourceContentSettings.AllowSourceEditing = value; } if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 && string.Compare(attribute.Value, "AllowMergeAcrossParagraphs", StringComparison.InvariantCultureIgnoreCase) == 0) { bool.TryParse(setting.Value, out var value); sourceContentSettings.AllowMergeAcrossParagraphs = value; } if (string.Compare(attribute.Name.LocalName, "Id", StringComparison.InvariantCultureIgnoreCase) == 0 && string.Compare(attribute.Value, "EnableIcuTokenization", StringComparison.InvariantCultureIgnoreCase) == 0) { bool.TryParse(setting.Value, out var value); sourceContentSettings.EnableIcuTokenization = value; } } } } }
private static void AssignSourceContentSettings(XElement project, string generalSettingsBundleGuid, SourceContentSettingsInfo sourceContentSettings) { 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) { SetSourceContentSettingsInfo(settingsBundle, sourceContentSettings); } } } } } }