All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.13.1 / 2025-01-12
- Renamed
FilterToken.OpenParenthese
toFilterToken.LeftParenthesis
- Renamed
FilterToken.CloseParenthese
toFilterToken.RightParenthesis
- Renamed
FilterToken.LeftBrace
toFilterToken.LeftCurlyBrace
- Renamed
FilterToken.RightBrace
toFilterToken.RightCurlyBrace
- Renamed
FilterToken.OpenSquaredBracket
toFilterToken.LeftSquaredBrace
- Renamed
FilterToken.CloseSquaredBracket
toFilterToken.RightSquaredBrace
- Fixed incorrect parsing of scientific numeric values (with
E
symbol). - Fixed incorrect parsing of some expressions that uses
*
character - Fixed incorrect parsing of text expressions when used in combination with contains
- Pipeline fails to publish NuGet packages to GitHub due to incorrect URL
- Refactoring of
ISimplifiable
implementations - Updated GitHub nuget registry URL
- Bumped
Candoumbe.Pipelines
to 0.13.0-rc.39 - Bumped
Microsoft.NET.Test.Sdk
to 17.11.1
0.13.0 / 2024-07-11
- Added
net8.0
support
- Dropped
net7.0
support - Dropped
net5.0
support - Dropped
netcoreapp3.1
support - Dropped
netstandard1.3
support - Removed
IFilterService
andFilterService
NumericValueExpression
andStringValueExpression
can be equal when they wrap the same underlying value (#80)- Fixed
ArgumentException
thrown when creating aFilter
withstartswith
|contains
|endswith
operator and achar
value (#284)
- Moved CI pipeline to Ubuntu agent
- Updated build definition to Candoumbe.Pipelines 0.9.0
- Updated
build.sh
script by runningnuke :update
command - Removed explicit
Nuke.Common
dependency from the build project - Added local file to store encrypted secrets needed when running some CI targets locally
- Replaced property based testing with handwritten test cases to validate
DateTimeExpression.Equals
implementation(#237) - Fixed incorrect casing filename for
IFilter.cs
- Dropped
xunit
andxunit.extensibility.execution
direct dependencies for tests
0.12.0 / 2022-10-12
- Added
net7.0
support - Added syntax for
OneOfExpression
using curly braces (#123) - Added
+
operator to combineConstantValueExpression
withAsteriskExpression
- Added
+
operator to combineStartsWithExpression
withEndsWithExpression
- Added
+
operator to combineStartsWithExpression
withContainsExpression
- Added
+
operator to combineStartsWithExpression
withStartsWithExpression
- Added
+
operator to combineStartsWithExpression
withStringValueExpression
- Added
|
operator to combine twoFilterExpression
s into aOrExpression
- Added
&
operator to combine twoFilterExpression
s into aAndExpression
AsteriskExpression
default constructor is now private- Dropped filter service
- Renamed
ISort<T>
toIOrder<T>
- Renamed
Sort<T>
toOrder<T>
- Renamed
MultiSort<T>
toMultiOrder<T>
- Renamed
SortValidator<T>
toOrderValidator<T>
- Renamed
SortToQueries
class toOrderExtensions
inDataFilters.Queries
- Renamed
SortExtensions
class toOrderExtensions
inDataFilters.Expressions
0.12.0 / 2022-10-12
- Added syntax for
OneOfExpression
using curly braces (#123) - Added
+
operator to combineConstantValueExpression
withAsteriskExpression
- Added
+
operator to combineStartsWithExpression
withEndsWithExpression
- Added
+
operator to combineStartsWithExpression
withContainsExpression
- Added
+
operator to combineStartsWithExpression
withStartsWithExpression
- Added
+
operator to combineStartsWithExpression
withStringValueExpression
- Added
|
operator to combine twoFilterExpression
s into aOrExpression
- Added
&
operator to combine twoFilterExpression
s into aAndExpression
AsteriskExpression
default constructor is now private- Dropped filter service
- Renamed
ISort<T>
toIOrder<T>
- Renamed
Sort<T>
toOrder<T>
- Renamed
MultiSort<T>
toMultiOrder<T>
- Renamed
SortValidator<T>
toOrderValidator<T>
- Renamed
SortToQueries
class toOrderExtensions
inDataFilters.Queries
- Renamed
SortExtensions
class toOrderExtensions
inDataFilters.Expressions
0.11.0 / 2022-03-13
- Added
FilterOptions
- Marked
FilterService
as obsolete.
0.10.2 / 2022-03-09
- Fixed
NullReferenceException
thrown when callingOffsetExpression.Equals(null)
(#98)
0.10.1 / 2022-03-09
- Fixed equality implementation of
OffsetExpression
when comparing twoOffsetExpression.Zero
when the only difference is the numeric sign
0.10.0 / 2022-01-12
- Added
IFilterService
which cachesIFilter
results. This partially addresses issue #15 - Fixed
NotSupportedException
thrown when callingNegate()
on aIFilter
that contains theFilterOperator.NotContain
operator
0.9.0 / 2021-12-30
- Made
BracketValue
implementIParseable
,IHaveComplexity
- Bumped
Candoumbe.MiscUtilities
to0.6.3
- Bumped
Queries.Core
to0.4.0
- Added
DateOnly
support (#63) - Added
TimeOnly
support (#64) - Added
NullableValueBehavior
(#68)
0.8.0 / 2021-10-10
- Added
ISimplifiable
marker interface which defines aFilterExpression.Simplify()
method to rewrite aFilterExpression
to a less complex form. - Renamed
RangeExpression
toIntervalExpression
[BREAKING] - Added
IParseableString
interface which defines :EscapedParseableString
property that holds a string representation of aFilterExpression
instance (#26).OriginalString
property that holds the string representation of a filter BEFORE being escaped.
- Added
Deconstruct
method forTimeExpression
class. - Added
BoolValueExpression
- Added
NumericValueExpression
to improve parsing of numeric values (#29) - Added
TextExpression
- Made
ConstantValueExpression
abstract [BREAKING]
0.7.0 / 2021-06-29
- Fixed missing documentation (#17)
- Fixed parsing
*<regex>
,<regex>*
expressions (#18) - Added complexity measurement of a
FilterExpression
(#19) - Renamed
PropertyNameExpression
toPropertyName
as its no longer aFilterExpression
[BREAKING] - Removed
EqualExpression
- Added support for
[<start>-<end>]
regex syntax [BREAKING] - Renamed
RegularExpression
toBracketExpression
[BREAKING] - Renamed
RegularValue
toBracketValue
[BREAKING] - Renamed
RegularConstantValue
toConstantBracketValue
[BREAKING] - Renamed
RegularRangeValue
toRangeBracketValue
[BREAKING] - Replaced
ConstantValueExpression(object)
constructor by : [BREAKING]ConstantValueExpression(string)
ConstantValueExpression(int)
ConstantValueExpression(long)
ConstantValueExpression(bool)
ConstantValueExpression(Guid)
ConstantValueExpression(DateTime)
ConstantValueExpression(DateTimeOffset)
ConstantValueExpression(byte)
ConstantValueExpression(char)
0.6.0 / 2021-05-03
- License changed to Apache 2.0
0.5.0 / 2021-05-02
- Introduces
PropertyNameResolutionStrategy
base class as extension point to configure the way to lookup for a corresponding property (#8) - Added
ToFilter<T>(string, PropertyNameResolutionStrategy)
overload - Added
ToSort<T>(string, PropertyNameResolutionStrategy)
overload
0.4.1 / 2021-04-28
- Fixes
FileNotFoundException
when callingStringExtensions.ToFilter<T>
method after a fresh installation.
0.4.0 / 2021-04-03
- Added support for offset when parsing
TimeExpression
s - Changed
ConstantValueExpresssion.Value
type fromstring
toobject
[BREAKING] - Added support for duration expressions
- Removed runtime dependency to Candoumbe.MiscUtilities package [BREAKING]
- Moved classes from
DataFilters.Converters
toDataFilters.Serialization
namespace. [BREAKING] - Added
Kind
property to specify theDateTimeExpression
[BREAKING]
0.3.2 / 2021-01-31
- Fixed parsing of sort expressions where a sub property name was specified.
0.3.1 / 2020-12-19
- Fixes
RepositoryUrl
metadata in nuget package
0.3.0 / 2020-12-19
- Added support for filtering over complex type collections by introducing sub property syntax
- Moved
FilterExtensions.ToFilter<T>(this StringSegment)
method toStringExtensions.ToFilter<T>(this StringSegment)
[BREAKING] - Moved
FilterExtensions.ToFilter<T>(this string)
method toStringExtensions.ToFilter<T>(this string)
[BREAKING] - Changed
ConstantExpression
toConstantValueExpression
[BREAKING] - Changed sub-property syntax from
property.subproperty
method toproperty["subproperty"]
[BREAKING] - Fixed parsing
RangeExpression
with datetime values - Enabled Source Link
0.2.2 / 2020-12-05
- Fixed "contains" parser not working with Guid.
- Replaced "Utilities" dependency with "Candoumbe.MiscUtilities" dependency
0.2.0 / 2020-12-04
- Added support for "equals" operator on collections
- Added support for "contains" operator on collections.