Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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);
        }