예제 #1
0
        public async Task <bool> ModifyGroupMembership(bool joinGroup, Guid chatGroupUuid)
        {
            ChatGroupUserDTO body = new ChatGroupUserDTO {
                ChatGroupUuid = chatGroupUuid
            };
            HttpResponseMessage response;

            if (joinGroup)
            {
                response = await Http.PostAsJsonAsync(
                    $"/api/chatGroupUser", body);
                await AddUserToChatGroupConnection(chatGroupUuid);
            }
            else
            {
                response = await Http.DeleteAsync(
                    $"/api/chatGroupUser/{chatGroupUuid}");
                await RemoveUserFromChatGroupConnection(chatGroupUuid);
            }
            try
            {
                ChatGroupUserResponse content = await response.Content.ReadFromJsonAsync <ChatGroupUserResponse>();

                if (content.Success == true)
                {
                    await GetChatGroupUsersAndMessages();

                    NotifyStateChanged();
                    return(true);
                }
                else
                {
                    //TODO handle issue with server
                }
            }
            catch (JsonException e)
            {
                // TODO probably unauthorized
                Console.WriteLine(e);
            }
            return(false);
        }
예제 #2
0
        public async Task <ActionResult <ChatGroupUserResponse> > AddUserToChatGroupAsync([FromBody] ChatGroupUserDTO chatgroup)
        {
            string userEmail = User.FindFirstValue(ClaimTypes.Email);
            User   user      = await _userManager.FindByEmailAsync(userEmail);

            if (user == null)
            {
                return(Forbid());
            }

            return(Ok(await _chatGroupUserService.AddUserToChatGroupAsync(user, chatgroup.ChatGroupUuid)));
        }