/// <summary> /// Mimics the same method in SettingsUtils, but it registers every action in URS /// </summary> /// <param name="urs"></param> /// <param name="current"></param> /// <param name="new"></param> public static void OverrideValues(UndoRedoStack urs, BaseSettings current, BaseSettings @new) { foreach (var newSettingPropertyGroup in @new.GetSettingPropertyGroups()) { var settingPropertyGroup = current.GetSettingPropertyGroups() .FirstOrDefault(x => x.DisplayGroupName.ToString() == newSettingPropertyGroup.DisplayGroupName.ToString()); OverrideValues(urs, settingPropertyGroup, newSettingPropertyGroup); } }
public static IEnumerable <SettingsPropertyGroupDefinition> GetAllSettingPropertyGroupDefinitions(this BaseSettings settings) => settings.GetSettingPropertyGroups().SelectMany(SettingsUtils.GetAllSettingPropertyGroupDefinitions);