using System; using System.Linq; using SabreTools.Models.Internal; namespace SabreTools.Filter { public static class FieldManipulator { /// /// Set a field in a given DictionaryBase /// public static bool SetField(DictionaryBase? dictionaryBase, string? fieldName, object value) { if (dictionaryBase == null || fieldName == null) return false; var constants = TypeHelper.GetConstants(typeof(DictionaryBase)); if (constants == null || !constants.Any(c => string.Equals(c, fieldName, StringComparison.InvariantCultureIgnoreCase))) return false; dictionaryBase[fieldName] = value; return true; } /// /// Remove a field from a given DictionaryBase /// public static bool RemoveField(DictionaryBase? dictionaryBase, string? fieldName) { if (dictionaryBase == null || fieldName == null) return false; if (!dictionaryBase.ContainsKey(fieldName)) return false; dictionaryBase.Remove(fieldName); return true; } } }