diff --git a/SabreTools.Library/DatFiles/DatFile.cs b/SabreTools.Library/DatFiles/DatFile.cs index 2ee65f81..61ed0200 100644 --- a/SabreTools.Library/DatFiles/DatFile.cs +++ b/SabreTools.Library/DatFiles/DatFile.cs @@ -1238,7 +1238,6 @@ namespace SabreTools.Library.DatFiles /// /// Remove fields as per the header /// - /// TODO: Move internal logic to DatItem like the rest public void RemoveFieldsFromItems() { // Output the logging statement @@ -1253,200 +1252,7 @@ namespace SabreTools.Library.DatFiles List items = Items[key]; for (int j = 0; j < items.Count; j++) { - DatItem item = items[j]; - - // TODO: Switch statement - foreach (Field field in fields) - { - // Machine Fields - if (field == Field.MachineName) - item.MachineName = null; - if (field == Field.Comment) - item.Comment = null; - if (field == Field.Description) - item.MachineDescription = null; - if (field == Field.Year) - item.Year = null; - if (field == Field.Manufacturer) - item.Manufacturer = null; - if (field == Field.Publisher) - item.Publisher = null; - if (field == Field.Category) - item.Category = null; - if (field == Field.RomOf) - item.RomOf = null; - if (field == Field.CloneOf) - item.CloneOf = null; - if (field == Field.SampleOf) - item.SampleOf = null; - if (field == Field.Supported) - item.Supported = null; - if (field == Field.SourceFile) - item.SourceFile = null; - if (field == Field.Runnable) - item.Runnable = null; - if (field == Field.Board) - item.Board = null; - if (field == Field.RebuildTo) - item.RebuildTo = null; - if (field == Field.Devices) - item.Devices = null; - if (field == Field.SlotOptions) - item.SlotOptions = null; - if (field == Field.Infos) - item.Infos = null; - if (field == Field.MachineType) - item.MachineType = MachineType.NULL; - - // Item Fields - if (field == Field.Name) - item.Name = null; - if (field == Field.PartName) - item.PartName = null; - if (field == Field.PartInterface) - item.PartInterface = null; - if (field == Field.Features) - item.Features = null; - if (field == Field.AreaName) - item.AreaName = null; - if (field == Field.AreaSize) - item.AreaSize = null; - if (field == Field.Default) - { - if (item.ItemType == ItemType.BiosSet) - (item as BiosSet).Default = null; - else if (item.ItemType == ItemType.Release) - (item as Release).Default = null; - } - if (field == Field.BiosDescription) - { - if (item.ItemType == ItemType.BiosSet) - (item as BiosSet).Description = null; - } - if (field == Field.Size) - { - if (item.ItemType == ItemType.Rom) - (item as Rom).Size = 0; - } - if (field == Field.CRC) - { - if (item.ItemType == ItemType.Rom) - (item as Rom).CRC = null; - } - if (field == Field.MD5) - { - if (item.ItemType == ItemType.Disk) - (item as Disk).MD5 = null; - else if (item.ItemType == ItemType.Rom) - (item as Rom).MD5 = null; - } -#if NET_FRAMEWORK - if (field == Field.RIPEMD160) - { - if (item.ItemType == ItemType.Disk) - (item as Disk).RIPEMD160 = null; - else if (item.ItemType == ItemType.Rom) - (item as Rom).RIPEMD160 = null; - } -#endif - if (field == Field.SHA1) - { - if (item.ItemType == ItemType.Disk) - (item as Disk).SHA1 = null; - else if (item.ItemType == ItemType.Rom) - (item as Rom).SHA1 = null; - } - if (field == Field.SHA256) - { - if (item.ItemType == ItemType.Disk) - (item as Disk).SHA256 = null; - else if (item.ItemType == ItemType.Rom) - (item as Rom).SHA256 = null; - } - if (field == Field.SHA384) - { - if (item.ItemType == ItemType.Disk) - (item as Disk).SHA384 = null; - else if (item.ItemType == ItemType.Rom) - (item as Rom).SHA384 = null; - } - if (field == Field.SHA512) - { - if (item.ItemType == ItemType.Disk) - (item as Disk).SHA512 = null; - else if (item.ItemType == ItemType.Rom) - (item as Rom).SHA512 = null; - } - if (field == Field.Merge) - { - if (item.ItemType == ItemType.Disk) - (item as Disk).MergeTag = null; - else if (item.ItemType == ItemType.Rom) - (item as Rom).MergeTag = null; - } - if (field == Field.Region) - { - if (item.ItemType == ItemType.Disk) - (item as Disk).Region = null; - else if (item.ItemType == ItemType.Release) - (item as Release).Region = null; - else if (item.ItemType == ItemType.Rom) - (item as Rom).Region = null; - } - if (field == Field.Index) - { - if (item.ItemType == ItemType.Disk) - (item as Disk).Index = null; - } - if (field == Field.Writable) - { - if (item.ItemType == ItemType.Disk) - (item as Disk).Writable = null; - } - if (field == Field.Optional) - { - if (item.ItemType == ItemType.Disk) - (item as Disk).Optional = null; - else if (item.ItemType == ItemType.Rom) - (item as Rom).Optional = null; - } - if (field == Field.Status) - { - if (item.ItemType == ItemType.Disk) - (item as Disk).ItemStatus = ItemStatus.NULL; - else if (item.ItemType == ItemType.Rom) - (item as Rom).ItemStatus = ItemStatus.NULL; - } - if (field == Field.Language) - { - if (item.ItemType == ItemType.Release) - (item as Release).Language = null; - } - if (field == Field.Date) - { - if (item.ItemType == ItemType.Release) - (item as Release).Date = null; - else if (item.ItemType == ItemType.Rom) - (item as Rom).Date = null; - } - if (field == Field.Bios) - { - if (item.ItemType == ItemType.Rom) - (item as Rom).Bios = null; - } - if (field == Field.Offset) - { - if (item.ItemType == ItemType.Rom) - (item as Rom).Offset = null; - } - if (field == Field.Inverted) - { - if (item.ItemType == ItemType.Rom) - (item as Rom).Inverted = null; - } - } - - items[j] = item; + items[j].RemoveFields(fields); } Items.Remove(key); diff --git a/SabreTools.Library/DatItems/BiosSet.cs b/SabreTools.Library/DatItems/BiosSet.cs index 7f598d22..2fd8a1d5 100644 --- a/SabreTools.Library/DatItems/BiosSet.cs +++ b/SabreTools.Library/DatItems/BiosSet.cs @@ -160,6 +160,23 @@ namespace SabreTools.Library.DatItems return true; } + /// + /// Remove fields from the DatItem + /// + /// List of Fields to remove + public override void RemoveFields(List fields) + { + // Remove common fields first + base.RemoveFields(fields); + + // Remove the fields + if (fields.Contains(Field.BiosDescription)) + Description = null; + + if (fields.Contains(Field.Default)) + Default = null; + } + #endregion #region Sorting and Merging @@ -168,11 +185,11 @@ namespace SabreTools.Library.DatItems /// Replace fields from another item /// /// DatItem to pull new information from - /// List of Fields representing what should be updated - public override void ReplaceFields(DatItem item, List updateFields) + /// List of Fields representing what should be updated + public override void ReplaceFields(DatItem item, List fields) { // Replace common fields first - base.ReplaceFields(item, updateFields); + base.ReplaceFields(item, fields); // If we don't have a BiosSet to replace from, ignore specific fields if (item.ItemType != ItemType.BiosSet) @@ -182,10 +199,10 @@ namespace SabreTools.Library.DatItems BiosSet newItem = item as BiosSet; // Replace the fields - if (updateFields.Contains(Field.BiosDescription)) + if (fields.Contains(Field.BiosDescription)) Description = newItem.Description; - if (updateFields.Contains(Field.Default)) + if (fields.Contains(Field.Default)) Default = newItem.Default; } diff --git a/SabreTools.Library/DatItems/DatItem.cs b/SabreTools.Library/DatItems/DatItem.cs index 75baa743..14a744db 100644 --- a/SabreTools.Library/DatItems/DatItem.cs +++ b/SabreTools.Library/DatItems/DatItem.cs @@ -1081,6 +1081,96 @@ namespace SabreTools.Library.DatItems return true; } + /// + /// Remove fields from the DatItem + /// + /// List of Fields to remove + public virtual void RemoveFields(List fields) + { + #region Machine Fields + + if (fields.Contains(Field.MachineName)) + MachineName = null; + + if (fields.Contains(Field.Comment)) + Comment = null; + + if (fields.Contains(Field.Description)) + MachineDescription = null; + + if (fields.Contains(Field.Year)) + Year = null; + + if (fields.Contains(Field.Manufacturer)) + Manufacturer = null; + + if (fields.Contains(Field.Publisher)) + Publisher = null; + + if (fields.Contains(Field.Category)) + Category = null; + + if (fields.Contains(Field.RomOf)) + RomOf = null; + + if (fields.Contains(Field.CloneOf)) + CloneOf = null; + + if (fields.Contains(Field.SampleOf)) + SampleOf = null; + + if (fields.Contains(Field.Supported)) + Supported = null; + + if (fields.Contains(Field.SourceFile)) + SourceFile = null; + + if (fields.Contains(Field.Runnable)) + Runnable = null; + + if (fields.Contains(Field.Board)) + Board = null; + + if (fields.Contains(Field.RebuildTo)) + RebuildTo = null; + + if (fields.Contains(Field.Devices)) + Devices = null; + + if (fields.Contains(Field.SlotOptions)) + SlotOptions = null; + + if (fields.Contains(Field.Infos)) + Infos = null; + + if (fields.Contains(Field.MachineType)) + MachineType = MachineType.NULL; + + #endregion + + #region Item Fields + + if (fields.Contains(Field.Name)) + Name = null; + + if (fields.Contains(Field.PartName)) + PartName = null; + + if (fields.Contains(Field.PartInterface)) + PartInterface = null; + + if (fields.Contains(Field.Features)) + Features = null; + + if (fields.Contains(Field.AreaName)) + AreaName = null; + + if (fields.Contains(Field.AreaSize)) + AreaSize = null; + + #endregion + } + #endregion #region Sorting and Merging @@ -1158,25 +1248,25 @@ namespace SabreTools.Library.DatItems /// Replace fields from another item /// /// DatItem to pull new information from - /// List of Fields representing what should be updated - public virtual void ReplaceFields(DatItem item, List updateFields) + /// List of Fields representing what should be updated + public virtual void ReplaceFields(DatItem item, List fields) { - if (updateFields.Contains(Field.Name)) + if (fields.Contains(Field.Name)) Name = item.Name; - if (updateFields.Contains(Field.PartName)) + if (fields.Contains(Field.PartName)) PartName = item.PartName; - if (updateFields.Contains(Field.PartInterface)) + if (fields.Contains(Field.PartInterface)) PartInterface = item.PartInterface; - if (updateFields.Contains(Field.Features)) + if (fields.Contains(Field.Features)) Features = item.Features; - if (updateFields.Contains(Field.AreaName)) + if (fields.Contains(Field.AreaName)) AreaName = item.AreaName; - if (updateFields.Contains(Field.AreaSize)) + if (fields.Contains(Field.AreaSize)) AreaSize = item.AreaSize; } @@ -1184,68 +1274,68 @@ namespace SabreTools.Library.DatItems /// Replace machine fields from another item /// /// DatItem to pull new information from - /// List of Fields representing what should be updated + /// List of Fields representing what should be updated /// True if descriptions should only be replaced if the game name is the same, false otherwise - public void ReplaceMachineFields(DatItem item, List updateFields, bool onlySame) + public void ReplaceMachineFields(DatItem item, List fields, bool onlySame) { - if (updateFields.Contains(Field.MachineName)) + if (fields.Contains(Field.MachineName)) MachineName = item.MachineName; - if (updateFields.Contains(Field.Comment)) + if (fields.Contains(Field.Comment)) Comment = item.Comment; - if (updateFields.Contains(Field.Description)) + if (fields.Contains(Field.Description)) { if (!onlySame || (onlySame && MachineName == MachineDescription)) MachineDescription = item.MachineDescription; } - if (updateFields.Contains(Field.Year)) + if (fields.Contains(Field.Year)) Year = item.Year; - if (updateFields.Contains(Field.Manufacturer)) + if (fields.Contains(Field.Manufacturer)) Manufacturer = item.Manufacturer; - if (updateFields.Contains(Field.Publisher)) + if (fields.Contains(Field.Publisher)) Publisher = item.Publisher; - if (updateFields.Contains(Field.Category)) + if (fields.Contains(Field.Category)) Category = item.Category; - if (updateFields.Contains(Field.RomOf)) + if (fields.Contains(Field.RomOf)) RomOf = item.RomOf; - if (updateFields.Contains(Field.CloneOf)) + if (fields.Contains(Field.CloneOf)) CloneOf = item.CloneOf; - if (updateFields.Contains(Field.SampleOf)) + if (fields.Contains(Field.SampleOf)) SampleOf = item.SampleOf; - if (updateFields.Contains(Field.Supported)) + if (fields.Contains(Field.Supported)) Supported = item.Supported; - if (updateFields.Contains(Field.SourceFile)) + if (fields.Contains(Field.SourceFile)) SourceFile = item.SourceFile; - if (updateFields.Contains(Field.Runnable)) + if (fields.Contains(Field.Runnable)) Runnable = item.Runnable; - if (updateFields.Contains(Field.Board)) + if (fields.Contains(Field.Board)) Board = item.Board; - if (updateFields.Contains(Field.RebuildTo)) + if (fields.Contains(Field.RebuildTo)) RebuildTo = item.RebuildTo; - if (updateFields.Contains(Field.Devices)) + if (fields.Contains(Field.Devices)) Devices = item.Devices; - if (updateFields.Contains(Field.SlotOptions)) + if (fields.Contains(Field.SlotOptions)) SlotOptions = item.SlotOptions; - if (updateFields.Contains(Field.Infos)) + if (fields.Contains(Field.Infos)) Infos = item.Infos; - if (updateFields.Contains(Field.MachineType)) + if (fields.Contains(Field.MachineType)) MachineType = item.MachineType; } diff --git a/SabreTools.Library/DatItems/Disk.cs b/SabreTools.Library/DatItems/Disk.cs index 7efca8e2..5b75f06e 100644 --- a/SabreTools.Library/DatItems/Disk.cs +++ b/SabreTools.Library/DatItems/Disk.cs @@ -568,6 +568,55 @@ namespace SabreTools.Library.DatItems return true; } + /// + /// Remove fields from the DatItem + /// + /// List of Fields to remove + public override void RemoveFields(List fields) + { + // Remove common fields first + base.RemoveFields(fields); + + // Remove the fields + if (fields.Contains(Field.MD5)) + MD5 = null; + +#if NET_FRAMEWORK + if (fields.Contains(Field.RIPEMD160)) + RIPEMD160 = null; +#endif + + if (fields.Contains(Field.SHA1)) + SHA1 = null; + + if (fields.Contains(Field.SHA256)) + SHA256 = null; + + if (fields.Contains(Field.SHA384)) + SHA384 = null; + + if (fields.Contains(Field.SHA512)) + SHA512 = null; + + if (fields.Contains(Field.Merge)) + MergeTag = null; + + if (fields.Contains(Field.Region)) + Region = null; + + if (fields.Contains(Field.Index)) + Index = null; + + if (fields.Contains(Field.Writable)) + Writable = null; + + if (fields.Contains(Field.Status)) + ItemStatus = ItemStatus.NULL; + + if (fields.Contains(Field.Optional)) + Optional = null; + } + #endregion #region Sorting and Merging @@ -629,11 +678,11 @@ namespace SabreTools.Library.DatItems /// Replace fields from another item /// /// DatItem to pull new information from - /// List of Fields representing what should be updated - public override void ReplaceFields(DatItem item, List updateFields) + /// List of Fields representing what should be updated + public override void ReplaceFields(DatItem item, List fields) { // Replace common fields first - base.ReplaceFields(item, updateFields); + base.ReplaceFields(item, fields); // If we don't have a Disk to replace from, ignore specific fields if (item.ItemType != ItemType.Disk) @@ -643,60 +692,60 @@ namespace SabreTools.Library.DatItems Disk newItem = item as Disk; // Replace the fields - if (updateFields.Contains(Field.MD5)) + if (fields.Contains(Field.MD5)) { if (string.IsNullOrEmpty(MD5) && !string.IsNullOrEmpty(newItem.MD5)) MD5 = newItem.MD5; } #if NET_FRAMEWORK - if (updateFields.Contains(Field.RIPEMD160)) + if (fields.Contains(Field.RIPEMD160)) { if (string.IsNullOrEmpty(RIPEMD160) && !string.IsNullOrEmpty(newItem.RIPEMD160)) RIPEMD160 = newItem.RIPEMD160; } #endif - if (updateFields.Contains(Field.SHA1)) + if (fields.Contains(Field.SHA1)) { if (string.IsNullOrEmpty(SHA1) && !string.IsNullOrEmpty(newItem.SHA1)) SHA1 = newItem.SHA1; } - if (updateFields.Contains(Field.SHA256)) + if (fields.Contains(Field.SHA256)) { if (string.IsNullOrEmpty(SHA256) && !string.IsNullOrEmpty(newItem.SHA256)) SHA256 = newItem.SHA256; } - if (updateFields.Contains(Field.SHA384)) + if (fields.Contains(Field.SHA384)) { if (string.IsNullOrEmpty(SHA384) && !string.IsNullOrEmpty(newItem.SHA384)) SHA384 = newItem.SHA384; } - if (updateFields.Contains(Field.SHA512)) + if (fields.Contains(Field.SHA512)) { if (string.IsNullOrEmpty(SHA512) && !string.IsNullOrEmpty(newItem.SHA512)) SHA512 = newItem.SHA512; } - if (updateFields.Contains(Field.Merge)) + if (fields.Contains(Field.Merge)) MergeTag = newItem.MergeTag; - if (updateFields.Contains(Field.Region)) + if (fields.Contains(Field.Region)) Region = newItem.Region; - if (updateFields.Contains(Field.Index)) + if (fields.Contains(Field.Index)) Index = newItem.Index; - if (updateFields.Contains(Field.Writable)) + if (fields.Contains(Field.Writable)) Writable = newItem.Writable; - if (updateFields.Contains(Field.Status)) + if (fields.Contains(Field.Status)) ItemStatus = newItem.ItemStatus; - if (updateFields.Contains(Field.Optional)) + if (fields.Contains(Field.Optional)) Optional = newItem.Optional; } diff --git a/SabreTools.Library/DatItems/Release.cs b/SabreTools.Library/DatItems/Release.cs index 8e210ba9..d55566d3 100644 --- a/SabreTools.Library/DatItems/Release.cs +++ b/SabreTools.Library/DatItems/Release.cs @@ -202,6 +202,29 @@ namespace SabreTools.Library.DatItems return true; } + /// + /// Remove fields from the DatItem + /// + /// List of Fields to remove + public override void RemoveFields(List fields) + { + // Remove common fields first + base.RemoveFields(fields); + + // Remove the fields + if (fields.Contains(Field.Region)) + Region = null; + + if (fields.Contains(Field.Language)) + Language = null; + + if (fields.Contains(Field.Date)) + Date = null; + + if (fields.Contains(Field.Default)) + Default = null; + } + #endregion #region Sorting and Merging @@ -210,11 +233,11 @@ namespace SabreTools.Library.DatItems /// Replace fields from another item /// /// DatItem to pull new information from - /// List of Fields representing what should be updated - public override void ReplaceFields(DatItem item, List updateFields) + /// List of Fields representing what should be updated + public override void ReplaceFields(DatItem item, List fields) { // Replace common fields first - base.ReplaceFields(item, updateFields); + base.ReplaceFields(item, fields); // If we don't have a Release to replace from, ignore specific fields if (item.ItemType != ItemType.Release) @@ -224,16 +247,16 @@ namespace SabreTools.Library.DatItems Release newItem = item as Release; // Replace the fields - if (updateFields.Contains(Field.Region)) + if (fields.Contains(Field.Region)) Region = newItem.Region; - if (updateFields.Contains(Field.Language)) + if (fields.Contains(Field.Language)) Language = newItem.Language; - if (updateFields.Contains(Field.Date)) + if (fields.Contains(Field.Date)) Date = newItem.Date; - if (updateFields.Contains(Field.Default)) + if (fields.Contains(Field.Default)) Default = newItem.Default; } diff --git a/SabreTools.Library/DatItems/Rom.cs b/SabreTools.Library/DatItems/Rom.cs index 7c4a9037..345e33b4 100644 --- a/SabreTools.Library/DatItems/Rom.cs +++ b/SabreTools.Library/DatItems/Rom.cs @@ -619,6 +619,67 @@ namespace SabreTools.Library.DatItems return true; } + /// + /// Remove fields from the DatItem + /// + /// List of Fields to remove + public override void RemoveFields(List fields) + { + // Remove common fields first + base.RemoveFields(fields); + + // Remove the fields + if (fields.Contains(Field.Bios)) + Bios = null; + + if (fields.Contains(Field.Size)) + Size = 0; + + if (fields.Contains(Field.CRC)) + CRC = null; + + if (fields.Contains(Field.MD5)) + MD5 = null; + +#if NET_FRAMEWORK + if (fields.Contains(Field.RIPEMD160)) + RIPEMD160 = null; +#endif + + if (fields.Contains(Field.SHA1)) + SHA1 = null; + + if (fields.Contains(Field.SHA256)) + SHA256 = null; + + if (fields.Contains(Field.SHA384)) + SHA384 = null; + + if (fields.Contains(Field.SHA512)) + SHA512 = null; + + if (fields.Contains(Field.Merge)) + MergeTag = null; + + if (fields.Contains(Field.Region)) + Region = null; + + if (fields.Contains(Field.Offset)) + Offset = null; + + if (fields.Contains(Field.Date)) + Date = null; + + if (fields.Contains(Field.Status)) + ItemStatus = ItemStatus.NULL; + + if (fields.Contains(Field.Optional)) + Optional = null; + + if (fields.Contains(Field.Inverted)) + Inverted = null; + } + #endregion #region Sorting and Merging @@ -684,11 +745,11 @@ namespace SabreTools.Library.DatItems /// Replace fields from another item /// /// DatItem to pull new information from - /// List of Fields representing what should be updated - public override void ReplaceFields(DatItem item, List updateFields) + /// List of Fields representing what should be updated + public override void ReplaceFields(DatItem item, List fields) { // Replace common fields first - base.ReplaceFields(item, updateFields); + base.ReplaceFields(item, fields); // If we don't have a Rom to replace from, ignore specific fields if (item.ItemType != ItemType.Rom) @@ -698,75 +759,75 @@ namespace SabreTools.Library.DatItems Rom newItem = item as Rom; // Replace the fields - if (updateFields.Contains(Field.Bios)) + if (fields.Contains(Field.Bios)) Bios = newItem.Bios; - if (updateFields.Contains(Field.Size)) + if (fields.Contains(Field.Size)) Size = newItem.Size; - if (updateFields.Contains(Field.CRC)) + if (fields.Contains(Field.CRC)) { if (string.IsNullOrEmpty(CRC) && !string.IsNullOrEmpty(newItem.CRC)) CRC = newItem.CRC; } - if (updateFields.Contains(Field.MD5)) + if (fields.Contains(Field.MD5)) { if (string.IsNullOrEmpty(MD5) && !string.IsNullOrEmpty(newItem.MD5)) MD5 = newItem.MD5; } #if NET_FRAMEWORK - if (updateFields.Contains(Field.RIPEMD160)) + if (fields.Contains(Field.RIPEMD160)) { if (string.IsNullOrEmpty(RIPEMD160) && !string.IsNullOrEmpty(newItem.RIPEMD160)) RIPEMD160 = newItem.RIPEMD160; } #endif - if (updateFields.Contains(Field.SHA1)) + if (fields.Contains(Field.SHA1)) { if (string.IsNullOrEmpty(SHA1) && !string.IsNullOrEmpty(newItem.SHA1)) SHA1 = newItem.SHA1; } - if (updateFields.Contains(Field.SHA256)) + if (fields.Contains(Field.SHA256)) { if (string.IsNullOrEmpty(SHA256) && !string.IsNullOrEmpty(newItem.SHA256)) SHA256 = newItem.SHA256; } - if (updateFields.Contains(Field.SHA384)) + if (fields.Contains(Field.SHA384)) { if (string.IsNullOrEmpty(SHA384) && !string.IsNullOrEmpty(newItem.SHA384)) SHA384 = newItem.SHA384; } - if (updateFields.Contains(Field.SHA512)) + if (fields.Contains(Field.SHA512)) { if (string.IsNullOrEmpty(SHA512) && !string.IsNullOrEmpty(newItem.SHA512)) SHA512 = newItem.SHA512; } - if (updateFields.Contains(Field.Merge)) + if (fields.Contains(Field.Merge)) MergeTag = newItem.MergeTag; - if (updateFields.Contains(Field.Region)) + if (fields.Contains(Field.Region)) Region = newItem.Region; - if (updateFields.Contains(Field.Offset)) + if (fields.Contains(Field.Offset)) Offset = newItem.Offset; - if (updateFields.Contains(Field.Date)) + if (fields.Contains(Field.Date)) Date = newItem.Date; - if (updateFields.Contains(Field.Status)) + if (fields.Contains(Field.Status)) ItemStatus = newItem.ItemStatus; - if (updateFields.Contains(Field.Optional)) + if (fields.Contains(Field.Optional)) Optional = newItem.Optional; - if (updateFields.Contains(Field.Inverted)) + if (fields.Contains(Field.Inverted)) Inverted = newItem.Inverted; }