using Managing.Application.Abstractions;
using Managing.Application.ManageBot.Commands;
using MediatR;
namespace Managing.Application.ManageBot
{
///
/// Handler for retrieving a specific strategy owned by a user
///
public class GetUserStrategyCommandHandler : IRequestHandler
{
private readonly IBotService _botService;
public GetUserStrategyCommandHandler(IBotService botService)
{
_botService = botService;
}
public Task Handle(GetUserStrategyCommand request, CancellationToken cancellationToken)
{
var allActiveBots = _botService.GetActiveBots();
// Find the specific strategy that matches both user and strategy name
var strategy = allActiveBots
.FirstOrDefault(bot =>
bot.User.AgentName == request.AgentName &&
bot.Identifier == request.StrategyName);
return Task.FromResult(strategy);
}
}
}