public async Task <IEnumerable <EpcisEvent> > Fetch(CancellationToken cancellationToken) { _parameters.SetLimit(_limit ?? int.MaxValue); _query = _filters.ContainsFilters ? _query.Where(_filters.GetSqlFilters()) : _query; _query = _query.OrderBy($"{_orderField.ToPgSql()} {_orderDirection.ToPgSql()}"); using var reader = await _connection.QueryMultipleAsync(new CommandDefinition (_sqlTemplate.RawSql, _parameters.Values, cancellationToken : cancellationToken)); var eventDtoManager = await EventDtoManager.ReadAsync(reader, cancellationToken); return(eventDtoManager.FormatEvents()); }
private static async Task StoreEpcisEvents(List <EpcisEvent> events, int requestId, IDbTransaction transaction, CancellationToken cancellationToken) { if (events.Count == 0) { return; } var eventDtoManager = new EventDtoManager(); for (short eventId = 0; eventId < events.Count; eventId++) { eventDtoManager.AddEvent(requestId, eventId, events[eventId]); } await eventDtoManager.PersistAsync(transaction, cancellationToken); }