public async Task <IActionResult> DeclineRequestToJoinGroup(RequestToJoinGroupViewModel viewModel)
        {
            var groupId           = viewModel.GroupId;
            var userId            = viewModel.UserId;
            var existingGroupUser = await _context.GroupUsers.FirstOrDefaultAsync(gu => gu.GroupId == groupId && gu.UserId == userId && !gu.Joined);

            _context.GroupUsers.Remove(existingGroupUser);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Details), new { id = groupId }));
        }
        public async Task <IActionResult> RequestToJoinGroup(RequestToJoinGroupViewModel viewModel)
        {
            var user = await GetCurrentUserAsync();

            var groupUser = new GroupUser
            {
                GroupId = viewModel.GroupId,
                UserId  = user.Id,
                Joined  = false
            };

            _context.GroupUsers.Add(groupUser);
            await _context.SaveChangesAsync();

            var groupSearchText = viewModel.GroupSearchText;

            return(RedirectToAction(nameof(Index), new { GroupSearchText = groupSearchText }));
        }