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
CorrelationIdThe CorrelationId for the IUnitOfWork.
onCompleted
Action<IUnitOfWork>The action to call when the IUnitOfWork is completed.
eventStore
IEventStoreThe IEventStore to use for the IUnitOfWork.
Properties
CorrelationId
Gets the CorrelationId for the IUnitOfWork.
public CorrelationId CorrelationId { get; }
Property Value
IsCompleted
Gets the value indicating whether the unit of work is completed.
public bool IsCompleted { get; }
Property Value
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
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
EventSequenceIdThe EventSequenceId for the event.
eventSourceId
EventSourceIdThe EventSourceId for the event.
event
objectThe event that has occurred.
causation
CausationThe Causation for the event.
eventStreamType
EventStreamTypeOptional EventStreamType for the event, will default to the All stream if not set.
eventStreamId
EventStreamIdOptional EventStreamId for the event, will default to Default is not set.
eventSourceType
EventSourceTypeOptional 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
EventSequenceNumberThe outputted EventSequenceNumber of the last committed event.
Returns
- bool
True if events were committed, false if not.