using DysonNetwork.Shared.Data; using DysonNetwork.Shared.Proto; namespace DysonNetwork.Shared.Registry; public class AccountClientHelper(AccountService.AccountServiceClient accounts) { public async Task GetAccount(Guid id) { var request = new GetAccountRequest { Id = id.ToString() }; var response = await accounts.GetAccountAsync(request); return response; } public async Task GetBotAccount(Guid automatedId) { var request = new GetBotAccountRequest { AutomatedId = automatedId.ToString() }; var response = await accounts.GetBotAccountAsync(request); return response; } public async Task> GetAccountBatch(List ids) { var request = new GetAccountBatchRequest(); request.Id.AddRange(ids.Select(id => id.ToString())); var response = await accounts.GetAccountBatchAsync(request); return response.Accounts.ToList(); } public async Task> GetBotAccountBatch(List automatedIds) { var request = new GetBotAccountBatchRequest(); request.AutomatedId.AddRange(automatedIds.Select(id => id.ToString())); var response = await accounts.GetBotAccountBatchAsync(request); return response.Accounts.ToList(); } public async Task> GetAccountStatusBatch(List ids) { var request = new GetAccountBatchRequest(); request.Id.AddRange(ids.Select(id => id.ToString())); var response = await accounts.GetAccountStatusBatchAsync(request); return response.Statuses .Select(AccountStatusReference.FromProtoValue) .ToDictionary(s => s.AccountId, s => s); } }