public async Task <IEnumerable <GetMembersQueryResult> > GetMembers(GetMembersQuery getMembersQuery) { var queryRequest = new QueryRequest() .Statement(@"SELECT members FROM `groups` g LEFT NEST `groups-relations` r_members ON KEYS ARRAY 'users|' || x.memberId FOR x IN g.members END LET members = ARRAY { 'memberId' : m.memberId, 'memberName' : IFNULL(FIRST x FOR x IN r_members WHEN META(x).id = 'users|' || m.memberId END, MISSING).userName } FOR m IN g.members END WHERE META(g).id = $groupId LIMIT 1;") .AddNamedParameter("$groupId", getMembersQuery.GroupId.ToString()); var queryResult = await _groupsBucket.QueryAsync <dynamic>(queryRequest); if (!queryResult.Success) { throw queryResult.Exception; } var queryResultItem = queryResult.Rows.FirstOrDefault(); var result = ((IEnumerable <dynamic>)queryResultItem.members).Select((x) => new GetMembersQueryResult { MemberId = x.memberId, MemberName = x.memberName }); return(result); }
public async Task <PaginatedList <MemberDTO> > Handle(GetMembersQuery request, CancellationToken cancellationToken) { return(await _applicationDbContext.Members .Where(x => x.BoardId == request.Id) .ProjectTo <MemberDTO>(_mapper.ConfigurationProvider) .PaginatedListAsync(request.PageNumber, request.PageSize)); }
public async Task <IActionResult> GetMembers([FromQuery] GetMembersQuery query) { return(Ok(await Mediator.Send(query))); }