/// <summary> /// Initializes a new instance of the <see cref="EmbeddingStateUpdater"/> class. /// </summary> /// <param name="embedding">The <see cref="EmbeddingId"/> that identifies the embedding.</param> /// <param name="committedEvents">The <see cref="IFetchCommittedEvents"/> that is used to fetch aggregate events.</param> /// <param name="embeddingStore">The <see cref="IEmbeddingStore"/> that is used to persist the states.</param> /// <param name="logger">The <see cref="ILogger"/>.</param> public EmbeddingStateUpdater( EmbeddingId embedding, IFetchCommittedEvents committedEvents, IEmbeddingStore embeddingStore, IProjectManyEvents projectManyEvents, ILogger logger) { _embedding = embedding; _committedEvents = committedEvents; _embeddingStore = embeddingStore; _projectManyEvents = projectManyEvents; _logger = logger; }
/// <summary> /// Initializes an instance of the <see cref="StateTransitionEventsCalculator" /> class. /// </summary> /// <param name="identifier">The <see cref="EmbeddingId" />.</param> /// <param name="embedding">The <see cref="IEmbedding" />.</param> /// <param name="projector">The <see cref="IProjectManyEvents"/>.</param> /// <param name="stateComparer">The <see cref="ICompareStates"/>.</param> /// <param name="loopDetector">The <see cref="IDetectEmbeddingLoops"/>.</param> /// <param name="logger">The <see cref="ILogger"/>.</param> public StateTransitionEventsCalculator( EmbeddingId identifier, IEmbedding embedding, IProjectManyEvents projector, ICompareStates stateComparer, IDetectEmbeddingLoops loopDetector, ILogger logger) { _embeddingId = identifier; _embedding = embedding; _projector = projector; _stateComparer = stateComparer; _loopDetector = loopDetector; _logger = logger; }
EmbeddingStateUpdater CreateEmbeddingStateUpdater(EmbeddingId embeddingId, IProjectManyEvents projectManyEvents) => new(embeddingId, _committedEventsFetcher, _embeddingStore, projectManyEvents, _loggerFactory.CreateLogger <EmbeddingStateUpdater>());