Files
managing-apps/src/Managing.Application/ManageBot/GetAllAgentsCommandHandler.cs
2025-09-28 20:57:42 +07:00

45 lines
1.4 KiB
C#

using Managing.Application.Abstractions;
using Managing.Application.Abstractions.Services;
using Managing.Application.ManageBot.Commands;
using Managing.Domain.Bots;
using Managing.Domain.Users;
using MediatR;
namespace Managing.Application.ManageBot
{
/// <summary>
/// Handler for retrieving all agents and their strategies
/// </summary>
public class GetAllAgentsCommandHandler : IRequestHandler<GetAllAgentsCommand, Dictionary<User, List<Bot>>>
{
private readonly IBotService _botService;
private readonly IUserService _userService;
public GetAllAgentsCommandHandler(IBotService botService, IUserService userService)
{
_botService = botService;
_userService = userService;
}
public async Task<Dictionary<User, List<Bot>>> Handle(GetAllAgentsCommand request, CancellationToken cancellationToken)
{
// Get all users
var allUsers = await _userService.GetAllUsersAsync();
// Create result dictionary
var result = new Dictionary<User, List<Bot>>();
// For each user, get their bots
foreach (var user in allUsers)
{
var userBots = await _botService.GetBotsByUser(user.Id);
var botList = userBots.ToList();
result[user] = botList;
}
return result;
}
}
}