public async Task <AllCommittedEventsPage> LoadAllCommittedEvents( GlobalPosition globalPosition, int pageSize, CancellationToken cancellationToken) { var startPosition = globalPosition.IsStart ? 0 : long.Parse(globalPosition.Value); var endPosition = startPosition + pageSize; const string sql = @" SELECT GlobalSequenceNumber, BatchId, AggregateId, AggregateName, Data, Metadata, AggregateSequenceNumber FROM EventFlow WHERE GlobalSequenceNumber >= @FromId AND GlobalSequenceNumber <= @ToId ORDER BY GlobalSequenceNumber ASC"; var eventDataModels = await _connection.QueryAsync <EventDataModel>( Label.Named("mssql-fetch-events"), cancellationToken, sql, new { FromId = startPosition, ToId = endPosition, }) .ConfigureAwait(false); var nextPosition = eventDataModels.Any() ? eventDataModels.Max(e => e.GlobalSequenceNumber) + 1 : startPosition; return(new AllCommittedEventsPage(new GlobalPosition(nextPosition.ToString()), eventDataModels)); }
public async Task<Thingy> ExecuteQueryAsync(ThingyGetQuery query, CancellationToken cancellationToken) { var readModels = await _sqLiteConnection.QueryAsync<SQLiteThingyReadModel>( Label.Named("sqlite-fetch-test-read-model"), cancellationToken, "SELECT * FROM [ReadModel-ThingyAggregate] WHERE AggregateId = @AggregateId", new { AggregateId = query.ThingyId.Value }) .ConfigureAwait(false); return readModels.SingleOrDefault()?.ToThingy(); }
public async Task <IReadOnlyCollection <ThingyMessage> > ExecuteQueryAsync(ThingyGetMessagesQuery query, CancellationToken cancellationToken) { var readModels = await _sqLiteConnection.QueryAsync <SQLiteThingyMessageReadModel>( Label.Named("sqlite-fetch-thingy-message-read-model"), cancellationToken, "SELECT * FROM [ReadModel-ThingyMessage] WHERE ThingyId = @ThingyId", new { ThingyId = query.ThingyId.Value }) .ConfigureAwait(false); return(readModels .Select(rm => rm.ToThingyMessage()) .ToList()); }