* Modular configuration for property mappings
* Update Readme, unit tests and sample
Co-authored-by: Steven Decoodt <steven.decoodt@vinci-energies.net>
* Setup release 2.5.0 with automated build and pre-releases
* #80 added support for escaping pipe control characters (#113)
* #80 added support for escaping comma and pipe control characters
* Update SieveModel.cs
Fix build. Accidentally broken by resolving conflicts.
* Migrate UnitTests to xUnit
Co-authored-by: Clayton Andersen <candersen@restaurant365.com>
Co-authored-by: ITDancer13 <kevin@ksommer.eu>
Co-authored-by: ITDancer139 <kevinitdancersommer@gmail.com>
* SieveProcessor.Options made protected property (#134)
Mapper assignment in constructor is moved to a null-coalescing member pair (a field and a property)
"IncludeScopes" switch is removed from appSettings.{env}.json files
* Revert to _mapper assignment in constructor. (#140)
* reverting fix (#142)
* Revert to _mapper assignment in constructor.
* reverting fix
* pass filter values as parameters (#112)
make GetClosureOverConstant really work
* Make ApplyFiltering, ApplySorting and ApplyPagination protected virtual #139 (#144)
* stop excluding null values when filtering using notEqual (#114)
* stop excluding null values when filtering using notEqual
* add IgnoreNullsOnNotEqual config field, to enable/disable the new feature
Co-authored-by: AnasZakarneh <a.zakarneh@foothillsolutions.com>
Co-authored-by: Clayton Andersen <tunaman65@gmail.com>
Co-authored-by: Clayton Andersen <candersen@restaurant365.com>
Co-authored-by: ITDancer139 <kevinitdancersommer@gmail.com>
Co-authored-by: Hasan Manzak <hasan.manzak@gmail.com>
Co-authored-by: alicak <alicak@users.noreply.github.com>
Co-authored-by: AnasZakarneh <Zakarnehanas1@gmail.com>
Co-authored-by: AnasZakarneh <a.zakarneh@foothillsolutions.com>
* Update sample project to dotnetcore3.1
* Use Sqlite in sample project to run it everywhere
* Fix: Filter with escaped comma
* Fix: Filter "null" does not work with Contains or StartsWith
* Code cleanup: Adjust namespaces, adjust usings
SieveProcessor is modified to pass propertyInfo to OrderByDynamic to avoid reattainment of propertyInfo required in Expression.MakeMemberAccess.
SieveProcessor is modified to be able to handle possible multiple incompatible customMethods via AggregateException.
Corresponding interfaces are generated for entities with related inheritance.
ApplicationSieveProcessor is modified to include interface members.
SieveCustomFilterMethods and SieveCustomSortMethod are modified to include interface related custom method modifications.
Interface accessed unit tests are added.
The following filter criteria should result in the same output, but
does not:
"CategoryId==1,(CategoryId|LikeCount)==50"
"(CategoryId|LikeCount)==50,CategoryId==1"
Cause is an optimization which removes or statements if one term
was already added in another statement. This optimization causes
a wrong result.
Combined filters separated with comma and a space resulted in an error.
Example:
Title==D, (Title|LikeCount)==3
Caused the error: "(Title not found"
Extended regex to allow whitespaces after the comma as documented.