Filter is a comma-delimited list of (Name)(Operator)(Value) in string format where:
(Name) is the name of a property with the DTO attribute.
(Operator) is one of the operators (see list below).
(Value) is the value to use for comparing and filtering.
It's possible to concatenate many (Name)(Operator)(Value) combinations using comma as a separator (Eg:"Id>1,Name@=Test")
Comma separator means an AND operator between the combinations to be evaluated while filtering.
It's also possible to add many options for values using a pipe as a separator (Eg:"Id==1|2|3")
Pipe separator means an OR operator between the values compared to the property while filtering.
Date-time values considerations:
Valid formats:
YYYY/MM/DD HH:mm:ss.dddd
YYYY.MM.DD HH:mm:ss.dddd
YYYY-MM-DD HH:mm:ss.dddd
MM/DD/YYYY HH:mm:ss.dddd
MM.DD.YYYY HH:mm:ss.dddd
MM-DD-YYYY HH:mm:ss.dddd
Whenever a value doesn´t have the time specified, it will be considered as 00:00:00:0000
If the same date-time is intended to be included in a range as a result, the from and to values should contain tenths of a second precision (Eg:"Date>=2020/01/01 15:00:00.000,Date<=2020/12/31 23:59:59.9999")
Enumerations considerations:
Whenever an attribute of a DTO is an enumeration, the search can only be done by complete match, it cannot be searched like a string value using partial matches (contains operator). Eg:
Ipaddress
Type
Status
Room
Type
Location
ViewMode
Operator Meaning:
Operator | Description | Applies To |
---|---|---|
== | Equals to | All types |
!= | Not equal to | All types |
> | Greater than | All types |
< | Less than | All types |
>= | Greater than or equal to | All types |
<= | Less than or equal to | All types |
@= | Contains | All types |
_= | Starts with | String |
!@= | Does not contain | String |
!_= | Does not start with | String |
@@@ | Is empty | String |
!@@@ | Is not empty | String |
**@ | Is null | All types |
!**@ | Is not null | All types |
@*@@ | Is null or empty | All types |
!@*@@ | Is not null or empty | All types |
@=* | Case-insensitive contains | String |
_=* | Case-insensitive starts with | String |
==* | Case-insensitive equals | String |
!=* | Case-insensitive does not equal | String |
!@=* | Case-insensitive does not contain | String |
!_=* | Case-insensitive does not start with | String |
Filtering examples
Filter | Meaning |
---|---|
"Name==*pc-pool|myname" | Retrieve DTOs containing Name that equals to "pc-pool" or "myname" strings comparing case-insensitive. |
"Name@=*pc|po|ol" | Retrieve DTOs having Name containing "pc" or "po" or "ol" strings comparing case-insensitive. |
"FloorId==153,Name!@=00,Number_=0008" | Retrieve DTOs which have FloorId equal to 153 and Name not containing "00" and Number starts with "0008". |
"Name>=0005,Number<7,Description@=S|e,Description!_=*e,Id!=258" | Retrieve DTOs which have their Name greater than or equal to "0005" string comparison and Number less than 7 and Description contains "S" or contains "e" and Description does not start with "e" comparing case-insensitive and Id is not equal to 258. |
"Modified>2013-01-01,Modified<=2013.12.31 14:13:34,Name!@=*.,Id==287|613|614" | Retrieve DTOs which have the Modified property between 2013-01-01 00:00:00.0000 and 2013-12-31 14:13:34.0000, and their Name doesn´t contain a dot ("." character) comparing case-insensitive, and Id can be equal to 287 or 613 or 614. |
"Description!=00,FloorId<160,Comment! =*kELLER,Name =*20,Name@ =*8|9,ModifiedBy = =*Johny Smith" | Retrieve DTOs wich have Description property not starting with "00" and FloorId is lesser than 160 and Comment is not equal to kELLER comparing case-insensitive, and Name starts with 20 comparing case-insensitive, and Name contains "8" or "9" comparing case-insensitive and ModifiedBy is equal to "Johny Smith" comparing case-insensitive. |
ParentComponentId**@ | Example of filtering by related entities (foreign keys). Retrieve DTOs (in this case components) which don´t have a Parent Component relationship. Using IsNull filter on a foreign key can be used to find non existent relationships. |
ComponentDefinitionName@=Cisco | Example of filtering by related entities (foreign keys). Retrieve DTOs (in this case components) which Component Definition Name contains Cisco. |