public async Task JoinGroup(JoinGroupCommand joinGroupCommand) { //var documentResult = await _groupsBucket.MutateIn<GroupDocument>(joinGroupCommand.GroupId.ToString()) // .ArrayAppend("members", new GroupMemberDocument { MemberId = joinGroupCommand.MemberId }) // .ExecuteAsync(); //var documentResult = await _groupsBucket.MutateIn<GroupDocument>(joinGroupCommand.GroupId.ToString()) // .ArrayAppend("members", new GroupMemberDocument { MemberId = joinGroupCommand.MemberId }) // .ExecuteAsync(); //if (!documentResult.Success) // throw documentResult.Exception; var queryRequest = new QueryRequest() .Statement($"UPDATE `{_groupsBucket.Name}` USE KEYS $groupId SET members = ARRAY_DISTINCT(ARRAY_APPEND(IFMISSINGORNULL(members,[]), $memberId));") .AddNamedParameter("$groupId", joinGroupCommand.GroupId) .AddNamedParameter("$memberId", new GroupMemberDocument { MemberId = joinGroupCommand.MemberId }); var queryResult = await _groupsBucket.QueryAsync <dynamic>(queryRequest); if (!queryResult.Success) { throw queryResult.Exception; } }
public async Task <IActionResult> JoinGroup(int uId, JoinGroupCommand joinGroupCommand) { joinGroupCommand.Finalize(uId); await _mediator.Send(joinGroupCommand); return(Ok()); }