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 time, 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")
Operator Meaning:
Operator | Description | Applies To |
---|---|---|
== | Equals | All types |
!= | Not Equals | 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 Contains | String |
!_= | Does not Starts with | String |
@=* | Case-insensitive Contains | String |
_=* | Case-insensitive Starts with | String |
==* | Case-insensitive Equals | String |
!=* | Case-insensitive Not equals | String |
!@=* | Case-insensitive Does not Contains | String |
!_=* | Case-insensitive Does not Starts with | String |
Filtering examples
Filter | Meaning |
---|---|
"Name==*pc-pool|myname" | Retrieve DTOs having Name that equals "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 wich 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 wich have their Name greater than or equal to "0005" string comparisson 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 wich 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. |