This page captures business rules enforced by the notification rule engine in SAIF.Services.ClaimInfoApi.Core. Every rule is defined and enforced locally; none is inherited from a dependency, since this library has no internal or external dependencies.
CIA-BR-001 Notification outputs are keyed by rule position¶
Field
Value
Statement
Notification outputs are keyed by rule Position. A rule's Key is its position as a string, so at most one result is returned per position.
Trigger
Each rule evaluated during CalculateNotifications<T>.
CIA-BR-003 Non-bool rule results are returned as strings¶
Field
Value
Statement
An int rule always produces its value as a string. A rule of any non-int, non-bool type is compiled as returning string and produces that string directly.
Trigger
Rule's resolved type is int or any other non-bool type.
CIA-BR-005 A true bool rule with an out-property recurses into a child property rule¶
Field
Value
Statement
A bool rule that evaluates to true and has OutProperty set produces the value of that other model property, evaluated as a child PropertyRule that inherits the parent rule's Id and Position.
Trigger
Rule's resolved type is bool, the compiled delegate returns true, and OutProperty is not null.
CIA-BR-006 A true bool rule without an out-property falls back to a constant out-value¶
Field
Value
Statement
A bool rule that evaluates to true, has no OutProperty, and has OutValue set produces the constant OutValue. If neither OutProperty nor OutValue is set, it produces nothing.
Trigger
Rule's resolved type is bool, the compiled delegate returns true, and OutProperty is null.
CIA-BR-011 An operator that parses as an ExpressionType builds a binary comparison¶
Field
Value
Statement
If OperatorName parses as a System.Linq.Expressions.ExpressionType name (for example Equal, GreaterThan), the rule is a binary comparison between the property and TargetValue, converted to the property's type.
Trigger
OperatorName matches a defined ExpressionType enum value.
CIA-BR-012 An unrecognized operator is treated as a method on the property's type¶
Field
Value
Statement
Otherwise, OperatorName is treated as the name of a public method on the property's type (for example Contains), called with TargetValue converted to that method's first parameter type.
Trigger
OperatorName is not null and does not parse as an ExpressionType.
NotificationMatrix.AlertLegal and AlertCBP are not enforced by any compiled code in this library and are therefore not recorded as rules here; see Architecture for the design inconsistency.
Mark inferred statements with * and unknown statements with **. Do not use bold inline confidence labels.
Note: Statements marked with * were inferred from code structure, naming conventions, or
contextual evidence where direct confirmation was not available in source artifacts.