Interface IConstraintBuilder
- Namespace
- Cratis.Chronicle.Events.Constraints
- Assembly
- Cratis.Chronicle.dll
Defines the builder for building constraints.
public interface IConstraintBuilder
Methods
AddConstraint(IConstraintDefinition)
Add a constraint to the builder.
void AddConstraint(IConstraintDefinition constraint)
Parameters
constraint
IConstraintDefinitionCratis.Chronicle.Contracts.Events.Constraints.Constraint to add.
Build()
Build the constraint.
IImmutableList<IConstraintDefinition> Build()
Returns
- IImmutableList<IConstraintDefinition>
A collection of IConstraintDefinition to use for registering with server.
Unique(Action<IUniqueConstraintBuilder>)
Start building a unique constraint.
IConstraintBuilder Unique(Action<IUniqueConstraintBuilder> callback)
Parameters
callback
Action<IUniqueConstraintBuilder>Callback with IUniqueConstraintBuilder for building.
Returns
- IConstraintBuilder
Builder for continuation.
Unique<TEventType>(ConstraintViolationMessage?, ConstraintName?)
Adds a unique constraint for a specific event type. This means there can only be one instance of this event type per event source identifier.
IConstraintBuilder Unique<TEventType>(ConstraintViolationMessage? message = null, ConstraintName? name = null)
Parameters
message
ConstraintViolationMessageOptional message for the constraint.
name
ConstraintNameOptional name for the constraint.
Returns
- IConstraintBuilder
Builder for continuation.
Type Parameters
TEventType
Type of event to add for.
Unique<TEventType>(ConstraintViolationMessageProvider, ConstraintName?)
Adds a unique constraint for a specific event type. This means there can only be one instance of this event type per event source identifier.
IConstraintBuilder Unique<TEventType>(ConstraintViolationMessageProvider messageCallback, ConstraintName? name = null)
Parameters
messageCallback
ConstraintViolationMessageProviderCallback for providing message for the constraint.
name
ConstraintNameOptional name for the constraint.
Returns
- IConstraintBuilder
Builder for continuation.
Type Parameters
TEventType
Type of event to add for.