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)); }
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)); }