using System; using Svrnty.CQRS.Events.Abstractions.Sagas; namespace Svrnty.CQRS.Events.Sagas; /// /// Context for saga execution. /// 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)); } /// public ISaga Saga { get; } /// public SagaState State { get; internal set; } /// public ISagaData Data { get; } /// public T? Get(string key) => Data.Get(key); /// public void Set(string key, T value) => Data.Set(key, value); /// public bool Contains(string key) => Data.Contains(key); }