【问题标题】:How to read events with Eventflow?如何使用 Eventflow 读取事件?
【发布时间】:2022-11-11 06:28:43
【问题描述】:

我在使用 Eventflow 的 .NET 6 应用程序上工作。我想阅读我的活动。

事件在表中EventEntity

你有什么主意吗 ?我们可以为这个表创建一个 ReadModel 吗?有什么方法可以从此表中获取数据吗?

【问题讨论】:

    标签: .net domain-driven-design cqrs event-sourcing event-flow


    【解决方案1】:

    我找到了解决方案,这是我的代码:

    public class EventStoreService : IEventStoreService
    {
            private readonly ILogger logger;
            private readonly IEventPersistence eventPersistence;
            private readonly IDbContextProvider<CartAppDbContext> _contextProvider;
    
            public EventStoreService(ILogger<EventStoreService> aLogger, IDbContextProvider<CartAppDbContext> contextProvider, IEventPersistence eventPersistence)
            {
                this.logger = aLogger;
                this.eventPersistence = eventPersistence;
                this._contextProvider = contextProvider;
            }
    
            public async Task<AllCommittedEventsPage> GetLastEventsAsync(int pageSize)
            {
                try
                {
                    using ( var context = _contextProvider.CreateContext() )
                    {
                        var entities = await context
                            .Set<EventEntity>()
                            .OrderByDescending(e => e.GlobalSequenceNumber)
                            .Take(pageSize)
                            .ToListAsync(CancellationToken.None)
                            .ConfigureAwait(false);
    
                        var nextPosition = entities.Any()
                            ? entities.Max(e => e.GlobalSequenceNumber) + 1
                            : 0;
    
                        return new AllCommittedEventsPage(new GlobalPosition(nextPosition.ToString()), entities);
                    }
                }
                catch ( Exception ex )
                {
                    this.logger.LogError("Récupération des évènements impossible : ", ex.Message);
                    throw;
                }
            }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-04
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      • 2018-11-06
      相关资源
      最近更新 更多