36 lines
895 B
C#
36 lines
895 B
C#
using System;
|
|
using Svrnty.CQRS.Events.Abstractions.Sagas;
|
|
|
|
namespace Svrnty.CQRS.Events.Sagas;
|
|
|
|
/// <summary>
|
|
/// Context for saga execution.
|
|
/// </summary>
|
|
public sealed class SagaContext : ISagaContext
|
|
{
|
|
public SagaContext(ISaga saga, SagaState state, ISagaData data)
|
|
{
|
|
Saga = saga ?? throw new ArgumentNullException(nameof(saga));
|
|
State = state;
|
|
Data = data ?? throw new ArgumentNullException(nameof(data));
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public ISaga Saga { get; }
|
|
|
|
/// <inheritdoc />
|
|
public SagaState State { get; internal set; }
|
|
|
|
/// <inheritdoc />
|
|
public ISagaData Data { get; }
|
|
|
|
/// <inheritdoc />
|
|
public T? Get<T>(string key) => Data.Get<T>(key);
|
|
|
|
/// <inheritdoc />
|
|
public void Set<T>(string key, T value) => Data.Set(key, value);
|
|
|
|
/// <inheritdoc />
|
|
public bool Contains(string key) => Data.Contains(key);
|
|
}
|