diff --git a/SabreTools.Library/DatItems/Adjuster.cs b/SabreTools.Library/DatItems/Adjuster.cs index 73432677..0560ce57 100644 --- a/SabreTools.Library/DatItems/Adjuster.cs +++ b/SabreTools.Library/DatItems/Adjuster.cs @@ -190,11 +190,11 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // Filter on default - if (!PassBoolFilter(filter.DatItem_Default, Default)) + if (!filter.PassBoolFilter(filter.DatItem_Default, Default)) return false; // Filter on individual conditions diff --git a/SabreTools.Library/DatItems/Analog.cs b/SabreTools.Library/DatItems/Analog.cs index 20254218..51378a89 100644 --- a/SabreTools.Library/DatItems/Analog.cs +++ b/SabreTools.Library/DatItems/Analog.cs @@ -104,7 +104,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on mask - if (!PassStringFilter(filter.DatItem_Analog_Mask, Mask)) + if (!filter.PassStringFilter(filter.DatItem_Analog_Mask, Mask)) return false; return true; diff --git a/SabreTools.Library/DatItems/Archive.cs b/SabreTools.Library/DatItems/Archive.cs index dea9ea9d..1d07e709 100644 --- a/SabreTools.Library/DatItems/Archive.cs +++ b/SabreTools.Library/DatItems/Archive.cs @@ -143,7 +143,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; return true; diff --git a/SabreTools.Library/DatItems/BiosSet.cs b/SabreTools.Library/DatItems/BiosSet.cs index 60c1f815..613eaee3 100644 --- a/SabreTools.Library/DatItems/BiosSet.cs +++ b/SabreTools.Library/DatItems/BiosSet.cs @@ -170,15 +170,15 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // Filter on description - if (!PassStringFilter(filter.DatItem_Description, Description)) + if (!filter.PassStringFilter(filter.DatItem_Description, Description)) return false; // Filter on default - if (!PassBoolFilter(filter.DatItem_Default, Default)) + if (!filter.PassBoolFilter(filter.DatItem_Default, Default)) return false; return true; diff --git a/SabreTools.Library/DatItems/Chip.cs b/SabreTools.Library/DatItems/Chip.cs index 60da5e3e..8f921355 100644 --- a/SabreTools.Library/DatItems/Chip.cs +++ b/SabreTools.Library/DatItems/Chip.cs @@ -188,11 +188,11 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // DatItem_Tag - if (!PassStringFilter(filter.DatItem_Tag, Tag)) + if (!filter.PassStringFilter(filter.DatItem_Tag, Tag)) return false; // DatItem_ChipType @@ -202,7 +202,7 @@ namespace SabreTools.Library.DatItems return false; // DatItem_Clock - if (!PassLongFilter(filter.DatItem_Clock, Clock)) + if (!filter.PassLongFilter(filter.DatItem_Clock, Clock)) return false; return true; diff --git a/SabreTools.Library/DatItems/Condition.cs b/SabreTools.Library/DatItems/Condition.cs index a03581f8..1c7eef64 100644 --- a/SabreTools.Library/DatItems/Condition.cs +++ b/SabreTools.Library/DatItems/Condition.cs @@ -186,11 +186,11 @@ namespace SabreTools.Library.DatItems if (sub) { // Filter on tag - if (!PassStringFilter(filter.DatItem_Condition_Tag, Tag)) + if (!filter.PassStringFilter(filter.DatItem_Condition_Tag, Tag)) return false; // Filter on mask - if (!PassStringFilter(filter.DatItem_Condition_Mask, Mask)) + if (!filter.PassStringFilter(filter.DatItem_Condition_Mask, Mask)) return false; // Filter on relation @@ -200,17 +200,17 @@ namespace SabreTools.Library.DatItems return false; // Filter on value - if (!PassStringFilter(filter.DatItem_Condition_Value, Value)) + if (!filter.PassStringFilter(filter.DatItem_Condition_Value, Value)) return false; } else { // Filter on tag - if (!PassStringFilter(filter.DatItem_Tag, Tag)) + if (!filter.PassStringFilter(filter.DatItem_Tag, Tag)) return false; // Filter on mask - if (!PassStringFilter(filter.DatItem_Mask, Mask)) + if (!filter.PassStringFilter(filter.DatItem_Mask, Mask)) return false; // Filter on relation @@ -220,7 +220,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on value - if (!PassStringFilter(filter.DatItem_Value, Value)) + if (!filter.PassStringFilter(filter.DatItem_Value, Value)) return false; } diff --git a/SabreTools.Library/DatItems/Configuration.cs b/SabreTools.Library/DatItems/Configuration.cs index 9c6830e3..b86bae96 100644 --- a/SabreTools.Library/DatItems/Configuration.cs +++ b/SabreTools.Library/DatItems/Configuration.cs @@ -255,15 +255,15 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // Filter on tag - if (!PassStringFilter(filter.DatItem_Tag, Tag)) + if (!filter.PassStringFilter(filter.DatItem_Tag, Tag)) return false; // Filter on mask - if (!PassStringFilter(filter.DatItem_Mask, Mask)) + if (!filter.PassStringFilter(filter.DatItem_Mask, Mask)) return false; // Filter on individual conditions diff --git a/SabreTools.Library/DatItems/Control.cs b/SabreTools.Library/DatItems/Control.cs index 883681ff..5a50888c 100644 --- a/SabreTools.Library/DatItems/Control.cs +++ b/SabreTools.Library/DatItems/Control.cs @@ -273,47 +273,47 @@ namespace SabreTools.Library.DatItems return false; // Filter on player - if (!PassLongFilter(filter.DatItem_Control_Player, Player)) + if (!filter.PassLongFilter(filter.DatItem_Control_Player, Player)) return false; // Filter on buttons - if (!PassLongFilter(filter.DatItem_Control_Buttons, Buttons)) + if (!filter.PassLongFilter(filter.DatItem_Control_Buttons, Buttons)) return false; // Filter on reqbuttons - if (!PassLongFilter(filter.DatItem_Control_ReqButtons, RequiredButtons)) + if (!filter.PassLongFilter(filter.DatItem_Control_ReqButtons, RequiredButtons)) return false; // Filter on minimum - if (!PassLongFilter(filter.DatItem_Control_Minimum, Minimum)) + if (!filter.PassLongFilter(filter.DatItem_Control_Minimum, Minimum)) return false; // Filter on maximum - if (!PassLongFilter(filter.DatItem_Control_Maximum, Maximum)) + if (!filter.PassLongFilter(filter.DatItem_Control_Maximum, Maximum)) return false; // Filter on sensitivity - if (!PassLongFilter(filter.DatItem_Control_Sensitivity, Sensitivity)) + if (!filter.PassLongFilter(filter.DatItem_Control_Sensitivity, Sensitivity)) return false; // Filter on keydelta - if (!PassLongFilter(filter.DatItem_Control_KeyDelta, KeyDelta)) + if (!filter.PassLongFilter(filter.DatItem_Control_KeyDelta, KeyDelta)) return false; // Filter on reverse - if (!PassBoolFilter(filter.DatItem_Control_Reverse, Reverse)) + if (!filter.PassBoolFilter(filter.DatItem_Control_Reverse, Reverse)) return false; // Filter on ways - if (!PassStringFilter(filter.DatItem_Control_Ways, Ways)) + if (!filter.PassStringFilter(filter.DatItem_Control_Ways, Ways)) return false; // Filter on ways2 - if (!PassStringFilter(filter.DatItem_Control_Ways2, Ways2)) + if (!filter.PassStringFilter(filter.DatItem_Control_Ways2, Ways2)) return false; // Filter on ways3 - if (!PassStringFilter(filter.DatItem_Control_Ways3, Ways3)) + if (!filter.PassStringFilter(filter.DatItem_Control_Ways3, Ways3)) return false; return true; diff --git a/SabreTools.Library/DatItems/DatItem.cs b/SabreTools.Library/DatItems/DatItem.cs index 0bc751be..5f214d7f 100644 --- a/SabreTools.Library/DatItems/DatItem.cs +++ b/SabreTools.Library/DatItems/DatItem.cs @@ -729,73 +729,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on item type - if (!PassStringFilter(filter.DatItem_Type, ItemType.ToString())) - return false; - - return true; - } - - /// - /// Determines if a value passes a bool? filter - /// - /// Filter item to check - /// Value to check - /// True if the value passes, false otherwise - protected bool PassBoolFilter(FilterItem filterItem, bool? value) - { - if (filterItem.MatchesNeutral(null, value) == false) - return false; - - return true; - } - - /// - /// Determines if a value passes a double? filter - /// - /// Filter item to check - /// Value to check - /// True if the value passes, false otherwise - protected bool PassDoubleFilter(FilterItem filterItem, double? value) - { - if (filterItem.MatchesNeutral(null, value) == false) - return false; - else if (filterItem.MatchesPositive(null, value) == false) - return false; - else if (filterItem.MatchesNegative(null, value) == false) - return false; - - return true; - } - - /// - /// Determines if a value passes a long? filter - /// - /// Filter item to check - /// Value to check - /// True if the value passes, false otherwise - protected bool PassLongFilter(FilterItem filterItem, long? value) - { - if (filterItem.MatchesNeutral(null, value) == false) - return false; - else if (filterItem.MatchesPositive(null, value) == false) - return false; - else if (filterItem.MatchesNegative(null, value) == false) - return false; - - return true; - } - - /// - /// Determines if a value passes a string filter - /// - /// Filter item to check - /// Value to check - /// True if the value passes, false otherwise - protected bool PassStringFilter(FilterItem filterItem, string value) - { - if (filterItem.MatchesPositiveSet(value) == false) - return false; - if (filterItem.MatchesNegativeSet(value) == true) + if (!filter.PassStringFilter(filter.DatItem_Type, ItemType.ToString())) return false; return true; diff --git a/SabreTools.Library/DatItems/DataArea.cs b/SabreTools.Library/DatItems/DataArea.cs index 992c37dd..c1c72027 100644 --- a/SabreTools.Library/DatItems/DataArea.cs +++ b/SabreTools.Library/DatItems/DataArea.cs @@ -190,15 +190,15 @@ namespace SabreTools.Library.DatItems return false; // Filter on area name - if (!PassStringFilter(filter.DatItem_AreaName, Name)) + if (!filter.PassStringFilter(filter.DatItem_AreaName, Name)) return false; // Filter on area size - if (!PassLongFilter(filter.DatItem_AreaSize, Size)) + if (!filter.PassLongFilter(filter.DatItem_AreaSize, Size)) return false; // Filter on area width - if (!PassLongFilter(filter.DatItem_AreaWidth, Width)) + if (!filter.PassLongFilter(filter.DatItem_AreaWidth, Width)) return false; // Filter on area endianness diff --git a/SabreTools.Library/DatItems/Device.cs b/SabreTools.Library/DatItems/Device.cs index f4773311..4f99c707 100644 --- a/SabreTools.Library/DatItems/Device.cs +++ b/SabreTools.Library/DatItems/Device.cs @@ -228,19 +228,19 @@ namespace SabreTools.Library.DatItems return false; // Filter on tag - if (!PassStringFilter(filter.DatItem_Tag, Tag)) + if (!filter.PassStringFilter(filter.DatItem_Tag, Tag)) return false; // Filter on fixed image - if (!PassStringFilter(filter.DatItem_FixedImage, FixedImage)) + if (!filter.PassStringFilter(filter.DatItem_FixedImage, FixedImage)) return false; // Filter on mandatory - if (!PassLongFilter(filter.DatItem_Mandatory, Mandatory)) + if (!filter.PassLongFilter(filter.DatItem_Mandatory, Mandatory)) return false; // Filter on interface - if (!PassStringFilter(filter.DatItem_Interface, Interface)) + if (!filter.PassStringFilter(filter.DatItem_Interface, Interface)) return false; // Filter on individual instances diff --git a/SabreTools.Library/DatItems/DeviceReference.cs b/SabreTools.Library/DatItems/DeviceReference.cs index 2e5e4e5d..0c2e61ed 100644 --- a/SabreTools.Library/DatItems/DeviceReference.cs +++ b/SabreTools.Library/DatItems/DeviceReference.cs @@ -143,7 +143,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; return true; diff --git a/SabreTools.Library/DatItems/DipSwitch.cs b/SabreTools.Library/DatItems/DipSwitch.cs index 774263e2..f39a0152 100644 --- a/SabreTools.Library/DatItems/DipSwitch.cs +++ b/SabreTools.Library/DatItems/DipSwitch.cs @@ -304,15 +304,15 @@ namespace SabreTools.Library.DatItems #region Common // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // Filter on tag - if (!PassStringFilter(filter.DatItem_Tag, Tag)) + if (!filter.PassStringFilter(filter.DatItem_Tag, Tag)) return false; // Filter on mask - if (!PassStringFilter(filter.DatItem_Mask, Mask)) + if (!filter.PassStringFilter(filter.DatItem_Mask, Mask)) return false; // Filter on individual conditions diff --git a/SabreTools.Library/DatItems/Disk.cs b/SabreTools.Library/DatItems/Disk.cs index 2993c38a..95f0d1d1 100644 --- a/SabreTools.Library/DatItems/Disk.cs +++ b/SabreTools.Library/DatItems/Disk.cs @@ -449,31 +449,31 @@ namespace SabreTools.Library.DatItems #region Common // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // Filter on MD5 - if (!PassStringFilter(filter.DatItem_MD5, MD5)) + if (!filter.PassStringFilter(filter.DatItem_MD5, MD5)) return false; // Filter on SHA-1 - if (!PassStringFilter(filter.DatItem_SHA1, SHA1)) + if (!filter.PassStringFilter(filter.DatItem_SHA1, SHA1)) return false; // Filter on merge tag - if (!PassStringFilter(filter.DatItem_Merge, MergeTag)) + if (!filter.PassStringFilter(filter.DatItem_Merge, MergeTag)) return false; // Filter on region - if (!PassStringFilter(filter.DatItem_Region, Region)) + if (!filter.PassStringFilter(filter.DatItem_Region, Region)) return false; // Filter on index - if (!PassStringFilter(filter.DatItem_Index, Index)) + if (!filter.PassStringFilter(filter.DatItem_Index, Index)) return false; // Filter on writable - if (!PassBoolFilter(filter.DatItem_Writable, Writable)) + if (!filter.PassBoolFilter(filter.DatItem_Writable, Writable)) return false; // Filter on status @@ -483,7 +483,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on optional - if (!PassBoolFilter(filter.DatItem_Optional, Optional)) + if (!filter.PassBoolFilter(filter.DatItem_Optional, Optional)) return false; #endregion diff --git a/SabreTools.Library/DatItems/DiskArea.cs b/SabreTools.Library/DatItems/DiskArea.cs index 931388e1..7c7817a7 100644 --- a/SabreTools.Library/DatItems/DiskArea.cs +++ b/SabreTools.Library/DatItems/DiskArea.cs @@ -145,7 +145,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on area name - if (!PassStringFilter(filter.DatItem_AreaName, Name)) + if (!filter.PassStringFilter(filter.DatItem_AreaName, Name)) return false; return true; diff --git a/SabreTools.Library/DatItems/Display.cs b/SabreTools.Library/DatItems/Display.cs index 6d7eb4ea..96b09488 100644 --- a/SabreTools.Library/DatItems/Display.cs +++ b/SabreTools.Library/DatItems/Display.cs @@ -306,7 +306,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on tag - if (!PassStringFilter(filter.DatItem_Tag, Tag)) + if (!filter.PassStringFilter(filter.DatItem_Tag, Tag)) return false; // Filter on display type @@ -316,51 +316,51 @@ namespace SabreTools.Library.DatItems return false; // Filter on rotation - if (!PassLongFilter(filter.DatItem_Rotate, Rotate)) + if (!filter.PassLongFilter(filter.DatItem_Rotate, Rotate)) return false; // Filter on flipx - if (!PassBoolFilter(filter.DatItem_FlipX, FlipX)) + if (!filter.PassBoolFilter(filter.DatItem_FlipX, FlipX)) return false; // Filter on width - if (!PassLongFilter(filter.DatItem_Width, Width)) + if (!filter.PassLongFilter(filter.DatItem_Width, Width)) return false; // Filter on height - if (!PassLongFilter(filter.DatItem_Height, Height)) + if (!filter.PassLongFilter(filter.DatItem_Height, Height)) return false; // Filter on refresh - if (!PassDoubleFilter(filter.DatItem_Refresh, Refresh)) + if (!filter.PassDoubleFilter(filter.DatItem_Refresh, Refresh)) return false; // Filter on pixclock - if (!PassLongFilter(filter.DatItem_PixClock, PixClock)) + if (!filter.PassLongFilter(filter.DatItem_PixClock, PixClock)) return false; // Filter on htotal - if (!PassLongFilter(filter.DatItem_HTotal, HTotal)) + if (!filter.PassLongFilter(filter.DatItem_HTotal, HTotal)) return false; // Filter on hbend - if (!PassLongFilter(filter.DatItem_HBEnd, HBEnd)) + if (!filter.PassLongFilter(filter.DatItem_HBEnd, HBEnd)) return false; // Filter on hbstart - if (!PassLongFilter(filter.DatItem_HBStart, HBStart)) + if (!filter.PassLongFilter(filter.DatItem_HBStart, HBStart)) return false; // Filter on vtotal - if (!PassLongFilter(filter.DatItem_VTotal, VTotal)) + if (!filter.PassLongFilter(filter.DatItem_VTotal, VTotal)) return false; // Filter on vbend - if (!PassLongFilter(filter.DatItem_VBEnd, VBEnd)) + if (!filter.PassLongFilter(filter.DatItem_VBEnd, VBEnd)) return false; // Filter on vbstart - if (!PassLongFilter(filter.DatItem_VBStart, VBStart)) + if (!filter.PassLongFilter(filter.DatItem_VBStart, VBStart)) return false; return true; diff --git a/SabreTools.Library/DatItems/Extension.cs b/SabreTools.Library/DatItems/Extension.cs index 186ffdf1..5c9825cc 100644 --- a/SabreTools.Library/DatItems/Extension.cs +++ b/SabreTools.Library/DatItems/Extension.cs @@ -143,7 +143,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Extension_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Extension_Name, Name)) return false; return true; diff --git a/SabreTools.Library/DatItems/Info.cs b/SabreTools.Library/DatItems/Info.cs index 501ee4ce..fbb3ea37 100644 --- a/SabreTools.Library/DatItems/Info.cs +++ b/SabreTools.Library/DatItems/Info.cs @@ -154,11 +154,11 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // Filter on info value - if (!PassStringFilter(filter.DatItem_Value, Value)) + if (!filter.PassStringFilter(filter.DatItem_Value, Value)) return false; return true; diff --git a/SabreTools.Library/DatItems/Input.cs b/SabreTools.Library/DatItems/Input.cs index 58c55c04..735ac9ec 100644 --- a/SabreTools.Library/DatItems/Input.cs +++ b/SabreTools.Library/DatItems/Input.cs @@ -186,19 +186,19 @@ namespace SabreTools.Library.DatItems return false; // Filter on service - if (!PassBoolFilter(filter.DatItem_Service, Service)) + if (!filter.PassBoolFilter(filter.DatItem_Service, Service)) return false; // Filter on tilt - if (!PassBoolFilter(filter.DatItem_Tilt, Tilt)) + if (!filter.PassBoolFilter(filter.DatItem_Tilt, Tilt)) return false; // Filter on players - if (!PassLongFilter(filter.DatItem_Players, Players)) + if (!filter.PassLongFilter(filter.DatItem_Players, Players)) return false; // Filter on coins - if (!PassLongFilter(filter.DatItem_Coins, Coins)) + if (!filter.PassLongFilter(filter.DatItem_Coins, Coins)) return false; // Filter on individual controls diff --git a/SabreTools.Library/DatItems/Instance.cs b/SabreTools.Library/DatItems/Instance.cs index 98613017..09c75cd7 100644 --- a/SabreTools.Library/DatItems/Instance.cs +++ b/SabreTools.Library/DatItems/Instance.cs @@ -154,11 +154,11 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Instance_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Instance_Name, Name)) return false; // Filter on brief name - if (!PassStringFilter(filter.DatItem_Instance_BriefName, BriefName)) + if (!filter.PassStringFilter(filter.DatItem_Instance_BriefName, BriefName)) return false; return true; diff --git a/SabreTools.Library/DatItems/Location.cs b/SabreTools.Library/DatItems/Location.cs index c0d2ab46..0d393e3e 100644 --- a/SabreTools.Library/DatItems/Location.cs +++ b/SabreTools.Library/DatItems/Location.cs @@ -173,15 +173,15 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Location_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Location_Name, Name)) return false; // Filter on number - if (!PassLongFilter(filter.DatItem_Location_Number, Number)) + if (!filter.PassLongFilter(filter.DatItem_Location_Number, Number)) return false; // Filter on inverted - if (!PassBoolFilter(filter.DatItem_Location_Inverted, Inverted)) + if (!filter.PassBoolFilter(filter.DatItem_Location_Inverted, Inverted)) return false; return true; diff --git a/SabreTools.Library/DatItems/Machine.cs b/SabreTools.Library/DatItems/Machine.cs index 949aedf3..0817e2f4 100644 --- a/SabreTools.Library/DatItems/Machine.cs +++ b/SabreTools.Library/DatItems/Machine.cs @@ -592,57 +592,39 @@ namespace SabreTools.Library.DatItems return false; // Machine_Comment - if (filter.Machine_Comment.MatchesPositiveSet(Comment) == false) - return false; - if (filter.Machine_Comment.MatchesNegativeSet(Comment) == true) + if (!filter.PassStringFilter(filter.Machine_Comment, Comment)) return false; // Machine_Description - if (filter.Machine_Description.MatchesPositiveSet(Description) == false) - return false; - if (filter.Machine_Description.MatchesNegativeSet(Description) == true) + if (!filter.PassStringFilter(filter.Machine_Description, Description)) return false; // Machine_Year - if (filter.Machine_Year.MatchesPositiveSet(Year) == false) - return false; - if (filter.Machine_Year.MatchesNegativeSet(Year) == true) + if (!filter.PassStringFilter(filter.Machine_Year, Year)) return false; // Machine_Manufacturer - if (filter.Machine_Manufacturer.MatchesPositiveSet(Manufacturer) == false) - return false; - if (filter.Machine_Manufacturer.MatchesNegativeSet(Manufacturer) == true) + if (!filter.PassStringFilter(filter.Machine_Manufacturer, Manufacturer)) return false; // Machine_Publisher - if (filter.Machine_Publisher.MatchesPositiveSet(Publisher) == false) - return false; - if (filter.Machine_Publisher.MatchesNegativeSet(Publisher) == true) + if (!filter.PassStringFilter(filter.Machine_Publisher, Publisher)) return false; // Machine_Category - if (filter.Machine_Category.MatchesPositiveSet(Category) == false) - return false; - if (filter.Machine_Category.MatchesNegativeSet(Category) == true) + if (!filter.PassStringFilter(filter.Machine_Category, Category)) return false; // Machine_RomOf - if (filter.Machine_RomOf.MatchesPositiveSet(RomOf) == false) - return false; - if (filter.Machine_RomOf.MatchesNegativeSet(RomOf) == true) + if (!filter.PassStringFilter(filter.Machine_RomOf, RomOf)) return false; // Machine_CloneOf - if (filter.Machine_CloneOf.MatchesPositiveSet(CloneOf) == false) - return false; - if (filter.Machine_CloneOf.MatchesNegativeSet(CloneOf) == true) + if (!filter.PassStringFilter(filter.Machine_CloneOf, CloneOf)) return false; // Machine_SampleOf - if (filter.Machine_SampleOf.MatchesPositiveSet(SampleOf) == false) - return false; - if (filter.Machine_SampleOf.MatchesNegativeSet(SampleOf) == true) + if (!filter.PassStringFilter(filter.Machine_SampleOf, SampleOf)) return false; // Machine_Type @@ -656,45 +638,31 @@ namespace SabreTools.Library.DatItems #region AttractMode // Machine_Players - if (filter.Machine_Players.MatchesPositiveSet(Players) == false) - return false; - if (filter.Machine_Players.MatchesNegativeSet(Players) == true) + if (!filter.PassStringFilter(filter.Machine_Players, Players)) return false; // Machine_Rotation - if (filter.Machine_Rotation.MatchesPositiveSet(Rotation) == false) - return false; - if (filter.Machine_Rotation.MatchesNegativeSet(Rotation) == true) + if (!filter.PassStringFilter(filter.Machine_Rotation, Rotation)) return false; // Machine_Control - if (filter.Machine_Control.MatchesPositiveSet(Control) == false) - return false; - if (filter.Machine_Control.MatchesNegativeSet(Control) == true) + if (!filter.PassStringFilter(filter.Machine_Control, Control)) return false; // Machine_Status - if (filter.Machine_Status.MatchesPositiveSet(Status) == false) - return false; - if (filter.Machine_Status.MatchesNegativeSet(Status) == true) + if (!filter.PassStringFilter(filter.Machine_Status, Status)) return false; // Machine_DisplayCount - if (filter.Machine_DisplayCount.MatchesPositiveSet(DisplayCount) == false) - return false; - if (filter.Machine_DisplayCount.MatchesNegativeSet(DisplayCount) == true) + if (!filter.PassStringFilter(filter.Machine_DisplayCount, DisplayCount)) return false; // Machine_DisplayType - if (filter.Machine_DisplayType.MatchesPositiveSet(DisplayType) == false) - return false; - if (filter.Machine_DisplayType.MatchesNegativeSet(DisplayType) == true) + if (!filter.PassStringFilter(filter.Machine_DisplayType, DisplayType)) return false; // Machine_Buttons - if (filter.Machine_Buttons.MatchesPositiveSet(Buttons) == false) - return false; - if (filter.Machine_Buttons.MatchesNegativeSet(Buttons) == true) + if (!filter.PassStringFilter(filter.Machine_Buttons, Buttons)) return false; #endregion @@ -702,9 +670,7 @@ namespace SabreTools.Library.DatItems #region ListXML // Machine_SourceFile - if (filter.Machine_SourceFile.MatchesPositiveSet(SourceFile) == false) - return false; - if (filter.Machine_SourceFile.MatchesNegativeSet(SourceFile) == true) + if (!filter.PassStringFilter(filter.Machine_SourceFile, SourceFile)) return false; // Machine_Runnable @@ -713,20 +679,16 @@ namespace SabreTools.Library.DatItems if (filter.Machine_Runnable.MatchesNegative(Runnable.NULL, Runnable) == true) return false; - #endregion // ListXML + #endregion #region Logiqx // Machine_Board - if (filter.Machine_Board.MatchesPositiveSet(Board) == false) - return false; - if (filter.Machine_Board.MatchesNegativeSet(Board) == true) + if (!filter.PassStringFilter(filter.Machine_Board, Board)) return false; // Machine_RebuildTo - if (filter.Machine_RebuildTo.MatchesPositiveSet(RebuildTo) == false) - return false; - if (filter.Machine_RebuildTo.MatchesNegativeSet(RebuildTo) == true) + if (!filter.PassStringFilter(filter.Machine_RebuildTo, RebuildTo)) return false; #endregion @@ -734,55 +696,39 @@ namespace SabreTools.Library.DatItems #region Logiqx EmuArc // Machine_TitleID - if (filter.Machine_TitleID.MatchesPositiveSet(TitleID) == false) - return false; - if (filter.Machine_TitleID.MatchesNegativeSet(TitleID) == true) + if (!filter.PassStringFilter(filter.Machine_TitleID, TitleID)) return false; // Machine_Developer - if (filter.Machine_Developer.MatchesPositiveSet(Developer) == false) - return false; - if (filter.Machine_Developer.MatchesNegativeSet(Developer) == true) + if (!filter.PassStringFilter(filter.Machine_Developer, Developer)) return false; // Machine_Genre - if (filter.Machine_Genre.MatchesPositiveSet(Genre) == false) - return false; - if (filter.Machine_Genre.MatchesNegativeSet(Genre) == true) + if (!filter.PassStringFilter(filter.Machine_Genre, Genre)) return false; // Machine_Subgenre - if (filter.Machine_Subgenre.MatchesPositiveSet(Subgenre) == false) - return false; - if (filter.Machine_Subgenre.MatchesNegativeSet(Subgenre) == true) + if (!filter.PassStringFilter(filter.Machine_Subgenre, Subgenre)) return false; // Machine_Ratings - if (filter.Machine_Ratings.MatchesPositiveSet(Ratings) == false) - return false; - if (filter.Machine_Ratings.MatchesNegativeSet(Ratings) == true) + if (!filter.PassStringFilter(filter.Machine_Ratings, Ratings)) return false; // Machine_Score - if (filter.Machine_Score.MatchesPositiveSet(Score) == false) - return false; - if (filter.Machine_Score.MatchesNegativeSet(Score) == true) + if (!filter.PassStringFilter(filter.Machine_Score, Score)) return false; // Machine_Enabled - if (filter.Machine_Enabled.MatchesPositiveSet(Enabled) == false) - return false; - if (filter.Machine_Enabled.MatchesNegativeSet(Enabled) == true) + if (!filter.PassStringFilter(filter.Machine_Enabled, Enabled)) return false; // Machine_CRC - if (filter.Machine_CRC.MatchesNeutral(null, Crc) == false) + if (!filter.PassBoolFilter(filter.Machine_CRC, Crc)) return false; // Machine_RelatedTo - if (filter.Machine_RelatedTo.MatchesPositiveSet(RelatedTo) == false) - return false; - if (filter.Machine_RelatedTo.MatchesNegativeSet(RelatedTo) == true) + if (!filter.PassStringFilter(filter.Machine_RelatedTo, RelatedTo)) return false; #endregion @@ -790,21 +736,15 @@ namespace SabreTools.Library.DatItems #region OpenMSX // Machine_GenMSXID - if (filter.Machine_GenMSXID.MatchesPositiveSet(GenMSXID) == false) - return false; - if (filter.Machine_GenMSXID.MatchesNegativeSet(GenMSXID) == true) + if (!filter.PassStringFilter(filter.Machine_GenMSXID, GenMSXID)) return false; // Machine_System - if (filter.Machine_System.MatchesPositiveSet(System) == false) - return false; - if (filter.Machine_System.MatchesNegativeSet(System) == true) + if (!filter.PassStringFilter(filter.Machine_System, System)) return false; // Machine_Country - if (filter.Machine_Country.MatchesPositiveSet(Country) == false) - return false; - if (filter.Machine_Country.MatchesNegativeSet(Country) == true) + if (!filter.PassStringFilter(filter.Machine_Country, Country)) return false; #endregion diff --git a/SabreTools.Library/DatItems/Media.cs b/SabreTools.Library/DatItems/Media.cs index 5b6ba85c..e21dc491 100644 --- a/SabreTools.Library/DatItems/Media.cs +++ b/SabreTools.Library/DatItems/Media.cs @@ -344,23 +344,23 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // Filter on MD5 - if (!PassStringFilter(filter.DatItem_MD5, MD5)) + if (!filter.PassStringFilter(filter.DatItem_MD5, MD5)) return false; // Filter on SHA-1 - if (!PassStringFilter(filter.DatItem_SHA1, SHA1)) + if (!filter.PassStringFilter(filter.DatItem_SHA1, SHA1)) return false; // Filter on SHA-256 - if (!PassStringFilter(filter.DatItem_SHA256, SHA256)) + if (!filter.PassStringFilter(filter.DatItem_SHA256, SHA256)) return false; // Filter on SpamSum - if (!PassStringFilter(filter.DatItem_SpamSum, SpamSum)) + if (!filter.PassStringFilter(filter.DatItem_SpamSum, SpamSum)) return false; return true; diff --git a/SabreTools.Library/DatItems/Part.cs b/SabreTools.Library/DatItems/Part.cs index 426d79b7..c201db61 100644 --- a/SabreTools.Library/DatItems/Part.cs +++ b/SabreTools.Library/DatItems/Part.cs @@ -181,11 +181,11 @@ namespace SabreTools.Library.DatItems return false; // Filter on part name - if (!PassStringFilter(filter.DatItem_Part_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Part_Name, Name)) return false; // Filter on part interface - if (!PassStringFilter(filter.DatItem_Part_Interface, Interface)) + if (!filter.PassStringFilter(filter.DatItem_Part_Interface, Interface)) return false; // Filter on features diff --git a/SabreTools.Library/DatItems/PartFeature.cs b/SabreTools.Library/DatItems/PartFeature.cs index 43edcaf1..1a36207d 100644 --- a/SabreTools.Library/DatItems/PartFeature.cs +++ b/SabreTools.Library/DatItems/PartFeature.cs @@ -154,11 +154,11 @@ namespace SabreTools.Library.DatItems return false; // Filter on name - if (!PassStringFilter(filter.DatItem_Part_Feature_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Part_Feature_Name, Name)) return false; // Filter on value - if (!PassStringFilter(filter.DatItem_Part_Feature_Value, Value)) + if (!filter.PassStringFilter(filter.DatItem_Part_Feature_Value, Value)) return false; return true; diff --git a/SabreTools.Library/DatItems/Port.cs b/SabreTools.Library/DatItems/Port.cs index db3b0e5b..0209881a 100644 --- a/SabreTools.Library/DatItems/Port.cs +++ b/SabreTools.Library/DatItems/Port.cs @@ -136,7 +136,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on tag - if (!PassStringFilter(filter.DatItem_Tag, Tag)) + if (!filter.PassStringFilter(filter.DatItem_Tag, Tag)) return false; // Filter on individual analogs diff --git a/SabreTools.Library/DatItems/RamOption.cs b/SabreTools.Library/DatItems/RamOption.cs index 0d3d4b9d..bc57b4f4 100644 --- a/SabreTools.Library/DatItems/RamOption.cs +++ b/SabreTools.Library/DatItems/RamOption.cs @@ -168,15 +168,15 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // Filter on default - if (!PassBoolFilter(filter.DatItem_Default, Default)) + if (!filter.PassBoolFilter(filter.DatItem_Default, Default)) return false; // Filter on content - if (!PassStringFilter(filter.DatItem_Content, Content)) + if (!filter.PassStringFilter(filter.DatItem_Content, Content)) return false; return true; diff --git a/SabreTools.Library/DatItems/Release.cs b/SabreTools.Library/DatItems/Release.cs index bd170829..88a914c1 100644 --- a/SabreTools.Library/DatItems/Release.cs +++ b/SabreTools.Library/DatItems/Release.cs @@ -198,23 +198,23 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // Filter on region - if (!PassStringFilter(filter.DatItem_Region, Region)) + if (!filter.PassStringFilter(filter.DatItem_Region, Region)) return false; // Filter on language - if (!PassStringFilter(filter.DatItem_Language, Language)) + if (!filter.PassStringFilter(filter.DatItem_Language, Language)) return false; // Filter on date - if (!PassStringFilter(filter.DatItem_Date, Date)) + if (!filter.PassStringFilter(filter.DatItem_Date, Date)) return false; // Filter on default - if (!PassBoolFilter(filter.DatItem_Default, Default)) + if (!filter.PassBoolFilter(filter.DatItem_Default, Default)) return false; return true; diff --git a/SabreTools.Library/DatItems/Rom.cs b/SabreTools.Library/DatItems/Rom.cs index 98807a82..83d5e2fe 100644 --- a/SabreTools.Library/DatItems/Rom.cs +++ b/SabreTools.Library/DatItems/Rom.cs @@ -795,65 +795,65 @@ namespace SabreTools.Library.DatItems #region Common // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // Filter on bios - if (!PassStringFilter(filter.DatItem_Bios, Bios)) + if (!filter.PassStringFilter(filter.DatItem_Bios, Bios)) return false; // Filter on rom size - if (!PassLongFilter(filter.DatItem_Size, Size)) + if (!filter.PassLongFilter(filter.DatItem_Size, Size)) return false; // Filter on CRC - if (!PassStringFilter(filter.DatItem_CRC, CRC)) + if (!filter.PassStringFilter(filter.DatItem_CRC, CRC)) return false; // Filter on MD5 - if (!PassStringFilter(filter.DatItem_MD5, MD5)) + if (!filter.PassStringFilter(filter.DatItem_MD5, MD5)) return false; #if NET_FRAMEWORK // Filter on RIPEMD160 - if (!PassStringFilter(filter.DatItem_RIPEMD160, RIPEMD160)) + if (!filter.PassStringFilter(filter.DatItem_RIPEMD160, RIPEMD160)) return false; #endif // Filter on SHA-1 - if (!PassStringFilter(filter.DatItem_SHA1, SHA1)) + if (!filter.PassStringFilter(filter.DatItem_SHA1, SHA1)) return false; // Filter on SHA-256 - if (!PassStringFilter(filter.DatItem_SHA256, SHA256)) + if (!filter.PassStringFilter(filter.DatItem_SHA256, SHA256)) return false; // Filter on SHA-384 - if (!PassStringFilter(filter.DatItem_SHA384, SHA384)) + if (!filter.PassStringFilter(filter.DatItem_SHA384, SHA384)) return false; // Filter on SHA-512 - if (!PassStringFilter(filter.DatItem_SHA512, SHA512)) + if (!filter.PassStringFilter(filter.DatItem_SHA512, SHA512)) return false; // Filter on SpamSum - if (!PassStringFilter(filter.DatItem_SpamSum, SpamSum)) + if (!filter.PassStringFilter(filter.DatItem_SpamSum, SpamSum)) return false; // Filter on merge tag - if (!PassStringFilter(filter.DatItem_Merge, MergeTag)) + if (!filter.PassStringFilter(filter.DatItem_Merge, MergeTag)) return false; // Filter on region - if (!PassStringFilter(filter.DatItem_Region, Region)) + if (!filter.PassStringFilter(filter.DatItem_Region, Region)) return false; // Filter on offset - if (!PassStringFilter(filter.DatItem_Offset, Offset)) + if (!filter.PassStringFilter(filter.DatItem_Offset, Offset)) return false; // Filter on date - if (!PassStringFilter(filter.DatItem_Date, Date)) + if (!filter.PassStringFilter(filter.DatItem_Date, Date)) return false; // Filter on status @@ -863,11 +863,11 @@ namespace SabreTools.Library.DatItems return false; // Filter on optional - if (!PassBoolFilter(filter.DatItem_Optional, Optional)) + if (!filter.PassBoolFilter(filter.DatItem_Optional, Optional)) return false; // Filter on inverted - if (!PassBoolFilter(filter.DatItem_Inverted, Inverted)) + if (!filter.PassBoolFilter(filter.DatItem_Inverted, Inverted)) return false; #endregion @@ -875,11 +875,11 @@ namespace SabreTools.Library.DatItems #region AttractMode // Filter on alt name - if (!PassStringFilter(filter.DatItem_AltName, AltName)) + if (!filter.PassStringFilter(filter.DatItem_AltName, AltName)) return false; // Filter on alt title - if (!PassStringFilter(filter.DatItem_AltTitle, AltTitle)) + if (!filter.PassStringFilter(filter.DatItem_AltTitle, AltTitle)) return false; #endregion @@ -887,7 +887,7 @@ namespace SabreTools.Library.DatItems #region OpenMSX // Filter on original - if (!PassStringFilter(filter.DatItem_Original, Original?.Content)) + if (!filter.PassStringFilter(filter.DatItem_Original, Original?.Content)) return false; // Filter on OpenMSX subtype @@ -897,15 +897,15 @@ namespace SabreTools.Library.DatItems return false; // Filter on OpenMSX type - if (!PassStringFilter(filter.DatItem_OpenMSXType, OpenMSXType)) + if (!filter.PassStringFilter(filter.DatItem_OpenMSXType, OpenMSXType)) return false; // Filter on remark - if (!PassStringFilter(filter.DatItem_Remark, Remark)) + if (!filter.PassStringFilter(filter.DatItem_Remark, Remark)) return false; // Filter on boot - if (!PassStringFilter(filter.DatItem_Boot, Boot)) + if (!filter.PassStringFilter(filter.DatItem_Boot, Boot)) return false; #endregion @@ -919,7 +919,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on value - if (!PassStringFilter(filter.DatItem_Value, Value)) + if (!filter.PassStringFilter(filter.DatItem_Value, Value)) return false; // Filter on DataArea diff --git a/SabreTools.Library/DatItems/Sample.cs b/SabreTools.Library/DatItems/Sample.cs index 16adbadd..8858145e 100644 --- a/SabreTools.Library/DatItems/Sample.cs +++ b/SabreTools.Library/DatItems/Sample.cs @@ -143,7 +143,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; return true; diff --git a/SabreTools.Library/DatItems/Setting.cs b/SabreTools.Library/DatItems/Setting.cs index d7740435..f3b097de 100644 --- a/SabreTools.Library/DatItems/Setting.cs +++ b/SabreTools.Library/DatItems/Setting.cs @@ -202,15 +202,15 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Setting_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Setting_Name, Name)) return false; // Filter on value - if (!PassStringFilter(filter.DatItem_Setting_Value, Value)) + if (!filter.PassStringFilter(filter.DatItem_Setting_Value, Value)) return false; // Filter on default - if (!PassBoolFilter(filter.DatItem_Setting_Default, Default)) + if (!filter.PassBoolFilter(filter.DatItem_Setting_Default, Default)) return false; // Filter on individual conditions diff --git a/SabreTools.Library/DatItems/SharedFeature.cs b/SabreTools.Library/DatItems/SharedFeature.cs index d4a0894d..e0e79721 100644 --- a/SabreTools.Library/DatItems/SharedFeature.cs +++ b/SabreTools.Library/DatItems/SharedFeature.cs @@ -154,11 +154,11 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // Filter on value - if (!PassStringFilter(filter.DatItem_Value, Value)) + if (!filter.PassStringFilter(filter.DatItem_Value, Value)) return false; return true; diff --git a/SabreTools.Library/DatItems/Slot.cs b/SabreTools.Library/DatItems/Slot.cs index 76112ec4..0b7130ba 100644 --- a/SabreTools.Library/DatItems/Slot.cs +++ b/SabreTools.Library/DatItems/Slot.cs @@ -175,7 +175,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // Filter on individual slot options diff --git a/SabreTools.Library/DatItems/SlotOption.cs b/SabreTools.Library/DatItems/SlotOption.cs index 12b693f1..06192621 100644 --- a/SabreTools.Library/DatItems/SlotOption.cs +++ b/SabreTools.Library/DatItems/SlotOption.cs @@ -170,15 +170,15 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_SlotOption_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_SlotOption_Name, Name)) return false; // Filter on device name - if (!PassStringFilter(filter.DatItem_SlotOption_DeviceName, DeviceName)) + if (!filter.PassStringFilter(filter.DatItem_SlotOption_DeviceName, DeviceName)) return false; // Filter on default - if (!PassBoolFilter(filter.DatItem_SlotOption_Default, Default)) + if (!filter.PassBoolFilter(filter.DatItem_SlotOption_Default, Default)) return false; return true; diff --git a/SabreTools.Library/DatItems/SoftwareList.cs b/SabreTools.Library/DatItems/SoftwareList.cs index 78434806..8acbef0b 100644 --- a/SabreTools.Library/DatItems/SoftwareList.cs +++ b/SabreTools.Library/DatItems/SoftwareList.cs @@ -172,7 +172,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on item name - if (!PassStringFilter(filter.DatItem_Name, Name)) + if (!filter.PassStringFilter(filter.DatItem_Name, Name)) return false; // Filter on status @@ -182,7 +182,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on filter - if (!PassStringFilter(filter.DatItem_Filter, Filter)) + if (!filter.PassStringFilter(filter.DatItem_Filter, Filter)) return false; return true; diff --git a/SabreTools.Library/DatItems/Sound.cs b/SabreTools.Library/DatItems/Sound.cs index 3f0bb6a7..fd79768c 100644 --- a/SabreTools.Library/DatItems/Sound.cs +++ b/SabreTools.Library/DatItems/Sound.cs @@ -109,7 +109,7 @@ namespace SabreTools.Library.DatItems return false; // Filter on channels - if (!PassLongFilter(filter.DatItem_Channels, Channels)) + if (!filter.PassLongFilter(filter.DatItem_Channels, Channels)) return false; return true; diff --git a/SabreTools.Library/Filtering/Filter.cs b/SabreTools.Library/Filtering/Filter.cs index b8ae8df3..99c257b8 100644 --- a/SabreTools.Library/Filtering/Filter.cs +++ b/SabreTools.Library/Filtering/Filter.cs @@ -1209,6 +1209,76 @@ namespace SabreTools.Library.Filtering #endregion + #region Filter Running + + /// + /// Determines if a value passes a bool? filter + /// + /// Filter item to check + /// Value to check + /// True if the value passes, false otherwise + public bool PassBoolFilter(FilterItem filterItem, bool? value) + { + if (filterItem.MatchesNeutral(null, value) == false) + return false; + + return true; + } + + /// + /// Determines if a value passes a double? filter + /// + /// Filter item to check + /// Value to check + /// True if the value passes, false otherwise + public bool PassDoubleFilter(FilterItem filterItem, double? value) + { + if (filterItem.MatchesNeutral(null, value) == false) + return false; + else if (filterItem.MatchesPositive(null, value) == false) + return false; + else if (filterItem.MatchesNegative(null, value) == false) + return false; + + return true; + } + + /// + /// Determines if a value passes a long? filter + /// + /// Filter item to check + /// Value to check + /// True if the value passes, false otherwise + public bool PassLongFilter(FilterItem filterItem, long? value) + { + if (filterItem.MatchesNeutral(null, value) == false) + return false; + else if (filterItem.MatchesPositive(null, value) == false) + return false; + else if (filterItem.MatchesNegative(null, value) == false) + return false; + + return true; + } + + /// + /// Determines if a value passes a string filter + /// + /// Filter item to check + /// Value to check + /// True if the value passes, false otherwise + public bool PassStringFilter(FilterItem filterItem, string value) + { + if (filterItem.MatchesPositiveSet(value) == false) + return false; + if (filterItem.MatchesNegativeSet(value) == true) + return false; + + return true; + } + + #endregion + #endregion // Instance Methods } }