Table of Contents

Namespace Shift.Common.Timeline.Changes

Classes

AggregateFactory<T>

Creates a new aggregate instance using the default constructor.

AggregateImport
AggregateRoot

Implements the base class for all aggregate roots. An aggregate forms a tree or graph of object relations. The aggregate root is the top-level container, which speaks for the whole and may delegates down to the rest. It is important because it is the one that the rest of the world communicates with.

AggregateRunContext
AggregateState

Represents the state (data) of an aggregate. A derived class should be a POCO (DTO/Packet) that includes a When method for each event type that changes its property values. Ideally, the property values for an instance of this class should be modified only through its When methods.

Change

Defines the base class for all events.

ChangeExtensions

Provides functions to convert between instances of IChange and SerializedChange.

ChangeNotFoundException
ChangeQueue

Implements a basic event queue.

ChangeRepository

Saves and gets aggregates to and from an change store.

SerializedAggregate

Provides a serialization wrapper for aggregates so we can use Entity Framework for basic DAL operations.

SerializedChange

Provides a serialization wrapper for events so that common properties are not embedded inside the event data.

Interfaces

IChange

Defines the minimum set of properties that every event must implement.

IChangeBuffer
IChangeQueue

Provides the features for a basic service bus to handle the publication of events.

IChangeRepository

Provides functionality to get and save aggregates.

IChangeStore

Defines the methods needed from the change store.

IEventProcessor