Namespace Cratis.Chronicle.Events.Migrations

Classes

EventMigrationBuilder

Represents an implementation of IEventMigrationBuilder.

EventMigrationBuilderFor<TTarget, TSource>

Represents an implementation of IEventMigrationBuilder<TTarget, TSource> that delegates to the underlying IEventMigrationBuilder.

EventMigrationPropertyBuilder

Represents an implementation of IEventMigrationPropertyBuilder.

EventMigrationPropertyBuilderFor<TTarget, TSource>

Represents an implementation of IEventMigrationPropertyBuilder<TTarget, TSource> that converts expression-based property accessors to PropertyName values and delegates to the underlying IEventMigrationPropertyBuilder.

EventTypeMigration<TUpgrade, TPrevious>

Abstract base class for type-safe event type migrations between two generations. Extracts From and To from TUpgrade and TPrevious - each resolved via EventTypeAttribute or EventTypeGenerationForAttribute<TEventType> - validates that both resolve to the same event type id, and that the upgrade generation is exactly one more than the previous generation.

EventTypeMigrators

Represents an implementation of IEventTypeMigrators.

EventValueMapBuilder<TUpgrade, TPrevious>

Represents an implementation of IEventValueMapBuilder<TUpgrade, TPrevious>.

ExplicitMigrationBindingNotSupported

The exception that is thrown when a custom provider cannot identify an opaque migration requiring new owning-registry binding.

InvalidMigrationGenerationGap

Exception thrown when the upgrade type's generation is not exactly one more than the previous type's generation.

MigrationGenerationsMustShareEventTypeId

The exception that is thrown when the two generations referenced by an EventTypeMigration<TUpgrade, TPrevious> resolve to different event type ids.

MultipleMigratorsForSameEventTypeGeneration

The exception that is thrown when more than one migrator defines the migration between the same pair of generations for an event type.

PropertyExpression

Represents a property expression key produced by an IEventMigrationPropertyBuilder operation.

PropertyName

Represents the name of a property in an event type.

PropertySeparator

Represents the separator used when splitting a property value.

SplitPartIndex

Represents the zero-based index of the part to extract when splitting a property value.

ValueMapBuilder<TFrom, TTo>

Represents an implementation of IValueMapBuilder<TFrom, TTo>.

ValueMapping

Represents a single value in a migration's value map and what that value becomes on the other side.

Interfaces

IEventMigrationBuilder

Defines a builder for event migrations.

IEventMigrationBuilder<TTarget, TSource>

Defines a type-safe builder for event migrations between two event type generations.

IEventMigrationPropertyBuilder

Defines a builder for event migration property transformations.

IEventMigrationPropertyBuilder<TTarget, TSource>

Defines a type-safe builder for event migration property transformations using expressions.

IEventTypeMigration

Defines an event type migration.

IEventTypeMigrationFor<TEvent>

Defines a migrator for a specific event type.

IEventTypeMigrationFor<TUpgrade, TPrevious>

Defines a type-safe migrator between two generations of the same event type.

IEventTypeMigrators

Defines a system that discovers and provides event type migrators.

IEventValueMapBuilder<TUpgrade, TPrevious>

Defines a builder for the value maps of an event type migration - the values that keep their property but change what they mean between two generations.

IValueMapBuilder<TFrom, TTo>

Defines a builder for the individual values of a property that change meaning between two event type generations.