Table of Contents

Class ReducerAggregateRootStateProvider<TState>

Namespace
Cratis.Chronicle.Aggregates
Assembly
Cratis.Chronicle.dll

Represents an implementation of IAggregateRootStateProvider<TState> using a reducer.

public class ReducerAggregateRootStateProvider<TState> : IAggregateRootStateProvider<TState>

Type Parameters

TState

Type of state for the aggregate root.

Inheritance
ReducerAggregateRootStateProvider<TState>
Implements
Inherited Members

Remarks

Initializes a new instance of the ReducerAggregateRootStateProvider<TState> class.

Constructors

ReducerAggregateRootStateProvider(IAggregateRootContext, IReducerHandler, IServiceProvider)

Represents an implementation of IAggregateRootStateProvider<TState> using a reducer.

public ReducerAggregateRootStateProvider(IAggregateRootContext aggregateRootContext, IReducerHandler reducer, IServiceProvider serviceProvider)

Parameters

aggregateRootContext IAggregateRootContext

The IAggregateRootContext the state is for.

reducer IReducerHandler

IReducerHandler to use for creating the state.

serviceProvider IServiceProvider

The IServiceProvider to create the actual instance of the reducer.

Remarks

Initializes a new instance of the ReducerAggregateRootStateProvider<TState> class.

Methods

Dehydrate()

Dehydrate any state.

public Task Dehydrate()

Returns

Task

Awaitable task.

Provide()

Handle state for an AggregateRoot.

public Task<TState?> Provide()

Returns

Task<TState>

State provided.

Update(TState?, IEnumerable<object>)

Update the state of an AggregateRoot with events.

public Task<TState?> Update(TState? initialState, IEnumerable<object> events)

Parameters

initialState TState

The initial state to update from.

events IEnumerable<object>

The events to update with.

Returns

Task<TState>

Updated state.