Class ReadModelPropertiesBuilder<TReadModel, TEvent, TBuilder, TParentBuilder>
- Namespace
- Cratis.Chronicle.Projections
- Assembly
- Cratis.Chronicle.dll
Represents an implementation of IReadModelPropertiesBuilder<TReadModel, TEvent, TBuilder>.
public class ReadModelPropertiesBuilder<TReadModel, TEvent, TBuilder, TParentBuilder> : KeyAndParentKeyBuilder<TEvent, TBuilder>, IKeyBuilder<TEvent, TBuilder>, IParentKeyBuilder<TEvent, TBuilder>, IReadModelPropertiesBuilder<TReadModel, TEvent, TBuilder> where TBuilder : class, IReadModelPropertiesBuilder<TReadModel, TEvent, TBuilder> where TParentBuilder : class
Type Parameters
TReadModelRead model to build for.
TEventEvent to build for.
TBuilderType of actual builder.
TParentBuilderThe type of parent builder.
- Inheritance
-
KeyBuilder<TEvent, TBuilder>KeyAndParentKeyBuilder<TEvent, TBuilder>ReadModelPropertiesBuilder<TReadModel, TEvent, TBuilder, TParentBuilder>
- Implements
-
IKeyBuilder<TEvent, TBuilder>IParentKeyBuilder<TEvent, TBuilder>IReadModelPropertiesBuilder<TReadModel, TEvent, TBuilder>
- Derived
- Inherited Members
Constructors
ReadModelPropertiesBuilder(IProjectionBuilder<TReadModel, TParentBuilder>, INamingPolicy)
Represents an implementation of IReadModelPropertiesBuilder<TReadModel, TEvent, TBuilder>.
public ReadModelPropertiesBuilder(IProjectionBuilder<TReadModel, TParentBuilder> projectionBuilder, INamingPolicy namingPolicy)
Parameters
projectionBuilderIProjectionBuilder<TReadModel, TParentBuilder>The parent IProjectionBuilderFor<TReadModel>.
namingPolicyINamingPolicyThe INamingPolicy to use for converting names during serialization.
Fields
_propertyExpressions
protected readonly Dictionary<PropertyPath, IPropertyExpressionBuilder> _propertyExpressions
Field Value
- Dictionary<PropertyPath, IPropertyExpressionBuilder>
Methods
AddChild<TChildModel>(Expression<Func<TReadModel, IEnumerable<TChildModel>>>, Action<IAddChildBuilder<TChildModel, TEvent>>)
Start building the add child operation to a target property holding an collection of a specific child model type.
public TBuilder AddChild<TChildModel>(Expression<Func<TReadModel, IEnumerable<TChildModel>>> targetProperty, Action<IAddChildBuilder<TChildModel, TEvent>> builderCallback)
Parameters
targetPropertyExpression<Func<TReadModel, IEnumerable<TChildModel>>>The collection property that will receive the child.
builderCallbackAction<IAddChildBuilder<TChildModel, TEvent>>Builder callback for building the composite key.
Returns
- TBuilder
Builder continuation.
Type Parameters
TChildModelType of child model.
AddChild<TChildModel>(Expression<Func<TReadModel, IEnumerable<TChildModel>>>, Expression<Func<TEvent, TChildModel>>)
Start building a child operation that add a child based on a property on the event.
public TBuilder AddChild<TChildModel>(Expression<Func<TReadModel, IEnumerable<TChildModel>>> targetProperty, Expression<Func<TEvent, TChildModel>> eventProperty)
Parameters
targetPropertyExpression<Func<TReadModel, IEnumerable<TChildModel>>>The collection property that will receive the child.
eventPropertyExpression<Func<TEvent, TChildModel>>Event property accessor for defining the source property.
Returns
- TBuilder
Builder continuation.
Type Parameters
TChildModelType of child model.
Add<TProperty>(Expression<Func<TReadModel, TProperty>>)
Start building the add operation to a target property on the model.
public IAddBuilder<TReadModel, TEvent, TProperty, TBuilder> Add<TProperty>(Expression<Func<TReadModel, TProperty>> readModelPropertyAccessor)
Parameters
readModelPropertyAccessorExpression<Func<TReadModel, TProperty>>Model property accessor for defining the target property.
Returns
- IAddBuilder<TReadModel, TEvent, TProperty, TBuilder>
Builder continuation.
Type Parameters
TPropertyType of the property.
Count<TProperty>(Expression<Func<TReadModel, TProperty>>)
Start building the count operation to a target property on the model.
public TBuilder Count<TProperty>(Expression<Func<TReadModel, TProperty>> readModelPropertyAccessor)
Parameters
readModelPropertyAccessorExpression<Func<TReadModel, TProperty>>Model property accessor for defining the target property.
Returns
- TBuilder
Builder continuation.
Type Parameters
TPropertyType of the property.
Decrement<TProperty>(Expression<Func<TReadModel, TProperty>>)
Increment the value of a property on the model.
public TBuilder Decrement<TProperty>(Expression<Func<TReadModel, TProperty>> readModelPropertyAccessor)
Parameters
readModelPropertyAccessorExpression<Func<TReadModel, TProperty>>Model property accessor for defining the target property.
Returns
- TBuilder
Builder continuation.
Type Parameters
TPropertyType of the property.
Increment<TProperty>(Expression<Func<TReadModel, TProperty>>)
Increment the value of a property on the model.
public TBuilder Increment<TProperty>(Expression<Func<TReadModel, TProperty>> readModelPropertyAccessor)
Parameters
readModelPropertyAccessorExpression<Func<TReadModel, TProperty>>Model property accessor for defining the target property.
Returns
- TBuilder
Builder continuation.
Type Parameters
TPropertyType of the property.
Set(PropertyPath)
Start building the set operation to a target property on the model.
public ISetBuilder<TReadModel, TEvent, TBuilder> Set(PropertyPath propertyPath)
Parameters
propertyPathPropertyPathModel property path for defining the target property.
Returns
- ISetBuilder<TReadModel, TEvent, TBuilder>
The ISetBuilder<TReadModel, TEvent, TParentBuilder> to continue building on.
SetThisValue()
Start building the set operation to target the value instance itself.
public ISetBuilder<TReadModel, TEvent, TBuilder> SetThisValue()
Returns
- ISetBuilder<TReadModel, TEvent, TBuilder>
The ISetBuilder<TReadModel, TEvent, TParentBuilder> to continue building on.
Set<TProperty>(Expression<Func<TReadModel, TProperty>>)
Start building the set operation to a target property on the model.
public ISetBuilder<TReadModel, TEvent, TProperty, TBuilder> Set<TProperty>(Expression<Func<TReadModel, TProperty>> readModelPropertyAccessor)
Parameters
readModelPropertyAccessorExpression<Func<TReadModel, TProperty>>Model property accessor for defining the target property.
Returns
- ISetBuilder<TReadModel, TEvent, TProperty, TBuilder>
The ISetBuilder<TReadModel, TEvent, TProperty, TParentBuilder> to continue building on.
Type Parameters
TPropertyType of the property.
Subtract<TProperty>(Expression<Func<TReadModel, TProperty>>)
Start building the add operation to a target property on the model.
public ISubtractBuilder<TReadModel, TEvent, TProperty, TBuilder> Subtract<TProperty>(Expression<Func<TReadModel, TProperty>> readModelPropertyAccessor)
Parameters
readModelPropertyAccessorExpression<Func<TReadModel, TProperty>>Model property accessor for defining the target property.
Returns
- ISubtractBuilder<TReadModel, TEvent, TProperty, TBuilder>
Builder continuation.
Type Parameters
TPropertyType of the property.