Table of Contents

Class UnitOfWork

Namespace
Cratis.Chronicle.Transactions
Assembly
Cratis.Chronicle.dll

Represents an implementation of IUnitOfWork.

public class UnitOfWork : IUnitOfWork, IDisposable
Inheritance
UnitOfWork
Implements
Inherited Members

Constructors

UnitOfWork(CorrelationId, Action<IUnitOfWork>, IEventStore)

Represents an implementation of IUnitOfWork.

public UnitOfWork(CorrelationId correlationId, Action<IUnitOfWork> onCompleted, IEventStore eventStore)

Parameters

correlationId CorrelationId

The CorrelationId for the IUnitOfWork.

onCompleted Action<IUnitOfWork>

The action to call when the IUnitOfWork is completed.

eventStore IEventStore

The IEventStore to use for the IUnitOfWork.

Properties

CorrelationId

Gets the CorrelationId for the IUnitOfWork.

public CorrelationId CorrelationId { get; }

Property Value

CorrelationId

IsCompleted

Gets the value indicating whether the unit of work is completed.

public bool IsCompleted { get; }

Property Value

bool

Remarks

Unit of work being completed is semantically equal to it being disposed.

IsSuccess

Gets a value indicating whether the IUnitOfWork was successful.

public bool IsSuccess { get; }

Property Value

bool

Methods

AddEvent(EventSequenceId, EventSourceId, object, Causation, EventStreamType?, EventStreamId?, EventSourceType?)

Add an event that has occurred to the IUnitOfWork.

public void AddEvent(EventSequenceId eventSequenceId, EventSourceId eventSourceId, object @event, Causation causation, EventStreamType? eventStreamType = null, EventStreamId? eventStreamId = null, EventSourceType? eventSourceType = null)

Parameters

eventSequenceId EventSequenceId

The EventSequenceId for the event.

eventSourceId EventSourceId

The EventSourceId for the event.

event object

The event that has occurred.

causation Causation

The Causation for the event.

eventStreamType EventStreamType

Optional EventStreamType for the event, will default to the All stream if not set.

eventStreamId EventStreamId

Optional EventStreamId for the event, will default to Default is not set.

eventSourceType EventSourceType

Optional EventSourceType for the event, will default to Default is not set.

Commit()

Commit the IUnitOfWork.

public Task Commit()

Returns

Task

Awaitable task.

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public void Dispose()

GetAppendErrors()

Get any errors that have occurred while attempting to commit in the IUnitOfWork.

public IEnumerable<AppendError> GetAppendErrors()

Returns

IEnumerable<AppendError>

A collection of AppendError.

GetConstraintViolations()

Gets the constraint violations that have occurred in the IUnitOfWork.

public IEnumerable<ConstraintViolation> GetConstraintViolations()

Returns

IEnumerable<ConstraintViolation>

A collection of ConstraintViolation.

GetEvents()

Get the events that have occurred in the IUnitOfWork.

public IEnumerable<object> GetEvents()

Returns

IEnumerable<object>

A collection of events.

OnCompleted(Action<IUnitOfWork>)

Set callback to be called when completed.

public void OnCompleted(Action<IUnitOfWork> callback)

Parameters

callback Action<IUnitOfWork>

The callback to call.

Rollback()

Rollback the IUnitOfWork.

public Task Rollback()

Returns

Task

Awaitable task.

TryGetLastCommittedEventSequenceNumber(out EventSequenceNumber?)

Try to get the EventSequenceNumber of the last committed event.

public bool TryGetLastCommittedEventSequenceNumber(out EventSequenceNumber? eventSequenceNumber)

Parameters

eventSequenceNumber EventSequenceNumber

The outputted EventSequenceNumber of the last committed event.

Returns

bool

True if events were committed, false if not.