public override async Task OnConnectedAsync()
        {
            var me = Context.User.Identity.Name;

            _logger.Trace($"User {me} connected. ");
            var groups = await _groups.GetUsersGroups(me, 0, await _groups.GetUsersGroupsLength(me));

            var user = await _users.Get(me);

            _logger.Trace($"User {user.Login} found. Connection id: {Context.ConnectionId}");
            user.ConnectionId = Context.ConnectionId;
            await _users.Update(user);

            foreach (var @group in groups)
            {
                await Groups.AddToGroupAsync(Context.ConnectionId, @group.GroupGuid);
            }
            await base.OnConnectedAsync();
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> GetJoinedGroups(int?page, int?pageSize)
        {
            var me     = HttpContext.User.Identity.Name;
            var groups = await _groupsRepository.GetUsersGroups(me, page, pageSize);

            var output = groups.Select(group =>
            {
#pragma warning disable AsyncFixer02 // Long running or blocking operations under an async method
                var lastMessage = _messagesRepository.GetMessagesFromGroup(group.GroupGuid, 0, 1).Result.FirstOrDefault();
#pragma warning restore AsyncFixer02 // Long running or blocking operations under an async method
                return(new GroupFoundWithMessageDto(group, lastMessage));
            });
            var response = new { Groups = output };

            return(new OkObjectResult(response));
        }