Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Release 3.0.0
Includes:
Warning
BREAKING CHANGES:
PriotityCriteria
property onRulesEngineOptions
- previously deprecated due to a typo.Old rule builder APIs - were already marked obsolete.
Condition
default constructor.On rules engine build-up. Current usages of the library will have to remove
TContentType
andTConditionType
from builder methods and use and additionalMakeGeneric<TContentType, TConditionType>()
method to get a equivalent instance of RulesEngine<TContentType
,TConditionType
>.Additional APIs were added to create and get content types from the rules engine.
From now on, the library users will be required to create explicitly the content types using the new API, except if the
AutoCreateContentTypes
option is true.This is a breaking change on behavior.
The rule builder API was refactored to align with the Rule Query Language specification (being developed on a separate branch).
Take as example the RQL sentence:
It would be written on rule builder API as:
Conditions are no longer accepted via a collection of
Condition
and a dictionary is accepted instead. As such, all calls toMatchOneAsync(...)
,MatchAllAsync(...)
, andSearchAsync(...)
will need adjustment to provide a dictionary of conditions alternatively.It was possible to set up on which resource the Web UI was exposed (e.g.
/rules
or/xyz
). Now it is statically exposed on/rules-ui
without the possibility of configuring it - Blazor's rooting limitation. It might possible to configure it but it will require experimenting on creating custom Blazor routing discovery classes.Multiple rules engine instances were exposed under different resources. Now all rules engine instances are exposed under the same resource
/rules-ui
.The conditions "pretty print" was removed.
Change checklist
Please also check the I want to contribute guidelines and make sure you have done accordingly.
Disclaimer
By sending us your contributions, you are agreeing that your contribution is made subject to the terms of our Contributor Ownership Statement