Add hub method to get stripped list of users

This commit is contained in:
Pat Hartl 2025-11-10 18:06:55 -06:00
parent 9e754daa40
commit 37eebfde9c
5 changed files with 33 additions and 0 deletions

View file

@ -15,4 +15,5 @@ public partial interface IRpcHub
Task Chat_GetMessagesAsync(Guid threadId);
Task Chat_StartTyping(Guid threadId);
Task Chat_StopTyping(Guid threadId);
Task<IEnumerable<User>> Chat_GetUsersAsync();
}

View file

@ -51,6 +51,9 @@ public class RpcChatClient(IRpcSubscriber subscriber)
public async Task StopTypingAsync(Guid threadId)
=> await RpcClient.Hub.Chat_StopTyping(threadId);
public async Task<IEnumerable<User>> GetUsersAsync()
=> await RpcClient.Hub.Chat_GetUsersAsync();
}
public class RpcServerClient(IRpcSubscriber subscriber)

View file

@ -126,5 +126,21 @@ namespace LANCommander.Server.Services
return threads;
}
/// <summary>
/// Gets a list of users stripped down to only IDs and usernames
/// </summary>
public async Task<List<User>> GetUsersAsync()
{
var users = await userService.AsNoTracking().GetAsync();
return users.Select(u => new User
{
Id = u.Id,
UserName = u.UserName,
Alias = u.Alias,
}).ToList();
}
}
}

View file

@ -99,4 +99,11 @@ public partial class RpcHub
await Clients.Users(participants).Chat_StopTyping(threadId, Context.UserIdentifier);
}
public async Task<IEnumerable<User>> Chat_GetUsersAsync()
{
var users = await chatService.GetUsersAsync();
return mapper.Map<IEnumerable<User>>(users);
}
}

View file

@ -0,0 +1,6 @@
namespace LANCommander.UI.Components.DataList;
public class DataListInputPosition
{
}