public async Task <AsyncResult <IEnumerable <IDomainEvent> > > GetAllAggregateStoredEventsSinceAsync( string aggregateRootId, string aggregateRootTypeName, int sequence) { Assert.NotNullOrEmpty(aggregateRootId, nameof(aggregateRootId)); Assert.NotNullOrEmpty(aggregateRootTypeName, nameof(aggregateRootTypeName)); var sql = string.Format(SelectSql, GetShardTableName(aggregateRootId), "`AggregateRootId`=@AggregateRootId AND `AggregateRootTypeName`=@AggregateRootTypeName AND `EventSequence`>@EventSequence"); try { using (var connection = new MySqlConnection(_options.ConnectionString)) { var storedEvents = await connection.QueryAsync <StoredDomainEvent>(sql, new { AggregateRootId = aggregateRootId, AggregateRootTypeName = aggregateRootTypeName, EventSequence = sequence }); var events = storedEvents.Select(it => DomainEventAdapter.ToDomainEvent(it, _serializer)); return(new AsyncResult <IEnumerable <IDomainEvent> >(AsyncStatus.Success, events)); } } catch (MySqlException ex) { _logger.LogError($"the {nameof(GetAllAggregateStoredEventsSinceAsync)} has a sql excetiopn, aggregateRootId: {aggregateRootId},aggregateRootTypeName: {aggregateRootTypeName},EventSequence: {sequence}", ex); return(new AsyncResult <IEnumerable <IDomainEvent> >(AsyncStatus.Failed)); } catch (Exception ex) { _logger.LogError($"the {nameof(GetAllAggregateStoredEventsSinceAsync)} has a unknown excetiopn, aggregateRootId: {aggregateRootId},aggregateRootTypeName: {aggregateRootTypeName},EventSequence: {sequence}", ex); return(new AsyncResult <IEnumerable <IDomainEvent> >(AsyncStatus.Failed)); } }
public static NodeTestFixture UseAdaper <TFrom, TTo>(this NodeTestFixture fixture, DomainEventAdapter <TFrom, TTo> adapter) where TFrom : DomainEvent where TTo : DomainEvent { fixture.OnNodeCreatedEvent += (sender, node) => node.EventsAdaptersCatalog.Register(adapter); return(fixture); }
public Task Handle(DomainEventAdapter <DeniedHeadRotateEvent> notification, CancellationToken cancellationToken) { //TODO: Inventar alguma coisa funcional return(Task.Run(() => Debug.WriteLine($"Evento de Rotação Limitada para a {notification.DomainEvent._direction}"))); }