public async Task <GetGroupByIdQueryResult> GetGroupById(GetGroupByIdQuery getGroupByIdQuery) { var queryRequest = new QueryRequest() .Statement(@"SELECT META(g).id, g.name, g.description, g.cityId, g.urlKey, ARRAY_COUNT(g.members) as membersCount, topics, OBJECT_CONCAT({'name':r_cities.cityName},{'id':g.cityId}) AS `city`, OBJECT_CONCAT({'name':r_organizers.userName},{'id':g.organizerId}) AS `organizer` FROM `groups` g INNER JOIN `groups-relations` r_cities ON KEYS 'cities|' || g.cityId INNER JOIN `groups-relations` r_organizers ON KEYS 'users|' || g.organizerId LEFT NEST `groups-relations` r_topics ON KEYS ARRAY 'topics|' || x.topicId FOR x IN g.topics END LET topics = ARRAY { 'id' : t.topicId, 'name' : IFNULL(FIRST x FOR x IN r_topics WHEN META(x).id = 'topics|' || t.topicId END, MISSING).topicName } FOR t IN g.topics END WHERE META(g).id = $groupId LIMIT 1;") .AddNamedParameter("$groupId", getGroupByIdQuery.GroupId.ToString()); var queryResult = await _groupsBucket.QueryAsync <GetGroupByIdQueryResult>(queryRequest); if (!queryResult.Success) { throw queryResult.Exception; } var result = queryResult.Rows.FirstOrDefault(); return(result); }
public async Task <IActionResult> Get([FromRoute] string groupId) { var query = new GetGroupByIdQuery(groupId); var result = await _mediator.Send(query); return(result != null?Ok(result) : NotFound()); }
public async Task GetGroupByIdHandler_ShouldReturnGroup_WhenGroupExists() { // Arrange GetGroupByIdQuery request = new GetGroupByIdQuery { GroupId = 1 }; IEnumerable <Group> expectedGroups = new[] { new Group { GroupId = 1 } }; IQueryable <Group> queryableMock = expectedGroups .AsQueryable() .BuildMock() .Object; _unitOfWorkMock .Setup(m => m.Groups.GetById(request.GroupId)) .Returns(queryableMock); GetGroupByIdQuery.Handler handler = new GetGroupByIdQuery.Handler(_mapperMock, _unitOfWorkMock.Object); // Act GroupResource group = await handler.Handle(request); // Assert Assert.NotNull(group); Assert.Equal(request.GroupId, group.GroupId); }
public async Task GetGroupByIdHandler_ShouldReturnNull_WhenGroupDoesNotExist() { // Arrange GetGroupByIdQuery request = new GetGroupByIdQuery { GroupId = 3891 }; IQueryable <Group> emptyQueryable = Enumerable .Empty <Group>() .AsQueryable() .BuildMock() .Object; _unitOfWorkMock .Setup(m => m.Groups.GetById(request.GroupId)) .Returns(emptyQueryable); GetGroupByIdQuery.Handler handler = new GetGroupByIdQuery.Handler(_mapperMock, _unitOfWorkMock.Object); // Act GroupResource group = await handler.Handle(request); // Assert Assert.Null(group); }
public async Task <IActionResult> GetGroup(int id) { var query = new GetGroupByIdQuery(id); var response = await _mediator.Send(query); return(_presenter.ToDataResult <JsGroupInfo>(response)); }
public async Task <ActionResult <GroupDto> > GetById(Guid id) { var query = new GetGroupByIdQuery(id); var group = await requestSender.Send(query); return(Ok(group)); }
public GroupQuery() { Name = "GroupQuery"; this.FieldAsyncWithScope <GroupType, GroupDto>( "get", arguments: new QueryArguments ( new QueryArgument <NonNullGraphType <IdGraphType> > { Name = "id" } ), resolve: async(ctx, mediator) => { var query = new GetGroupByIdQuery() { Id = ctx.GetString("id") }; var group = await mediator.Send(query); return(group); } ); this.FieldAsyncWithScope <PageInfoType <GroupType, GroupDto>, PaginatedList <GroupDto> >( "getForUser", arguments: new QueryArgumentsWithPagination ( new QueryArgument <NonNullGraphType <IdGraphType> > { Name = "userId" } ), resolve: async(ctx, mediator) => { var query = new GetGroupsForUserQuery() { UserId = ctx.GetString("userId"), PageNumber = ctx.GetInt("pageNumber"), PageSize = ctx.GetInt("pageSize") }; var groups = await mediator.Send(query); return(groups); } ); }
public async Task <ActionResult <GroupResource> > GetGroupById([FromRoute] int groupId, CancellationToken cancellationToken = default) { GetGroupByIdQuery query = new GetGroupByIdQuery { GroupId = groupId }; GroupResource group = await _mediator.Send(query, cancellationToken); if (group == null) { return(NotFound(new ErrorResource { StatusCode = StatusCodes.Status404NotFound, Message = $"Group with ID '{groupId}' does not exist" })); } return(Ok(group)); }
public async Task <ActionResult <GroupDto> > GetById([FromQuery] GetGroupByIdQuery query) { return(await Mediator.Send(query)); }