Esempio n. 1
0
            public async Task <EventsVm> Handle(GetEventsByChatIdQuery request, CancellationToken cancellationToken)
            {
                var chat = await _context.Chats
                           .AsNoTracking()
                           .Include(c => c.Events).ThenInclude(e => e.User)
                           .FirstOrDefaultAsync(c => c.Id == request.ChatId);

                var aggregationInterval = request.GetAggregationValueInMinutes();

                var items = _aggregatorService.Aggregate <Domain.Entities.Event>(chat?.Events, aggregationInterval)
                            .ToDictionary(k => k.Key, v => v.Value.Select(i => _mapper.Map <EventDto>(i)));

                return(EventsVm.Create(items, aggregationInterval));
            }
Esempio n. 2
0
            public async Task <EventsVm> Handle(GetAllEventsQuery request, CancellationToken cancellationToken)
            {
                var events = await _context.Events
                             .AsNoTracking()
                             .Include(c => c.User)
                             .ToListAsync()
                             .ConfigureAwait(false);

                var aggregationInterval = request.GetAggregationValueInMinutes();

                var items = _aggregatorService.Aggregate <Domain.Entities.Event>(events, aggregationInterval)
                            .ToDictionary(k => k.Key, v => v.Value.Select(i => _mapper.Map <EventDto>(i)));

                return(EventsVm.Create(items, aggregationInterval));
            }