public async Task <List <Meeting> > Handle(GetMeetingsQuery request, CancellationToken cancellationToken) { var userOidc = auth.GetUserIdentifier(); var user = await db.Users .AsNoTracking() .SingleOrDefaultAsync(u => u.OidcIdentifier == userOidc, cancellationToken); if (user == null) { throw new NotFoundException($"Unable to find user with {userOidc}"); } return(await db.Meetings .AsNoTracking() .Include(m => m.Creator) .Include(m => m.Proposals) .Include(m => m.Invitations) .ThenInclude(i => i.User) .Include(m => m.Invitations) .ThenInclude(i => i.Votes) .Where(m => m.Creator == user || m.Invitations.Any(i => i.User == user)) .ToListAsync(cancellationToken)); }
public async Task <IActionResult> GetMeetingsAsync([FromQuery] GetMeetingsQuery getMeetingsQuery) { return(Ok(await _mediator.Send(getMeetingsQuery))); }