Add stats for kaigen
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
using Managing.Application.Abstractions;
|
||||
using MediatR;
|
||||
|
||||
namespace Managing.Application.ManageBot.Commands
|
||||
{
|
||||
/// <summary>
|
||||
/// Command to retrieve all strategies owned by a specific user
|
||||
/// </summary>
|
||||
public class GetUserStrategiesCommand : IRequest<List<ITradingBot>>
|
||||
{
|
||||
public string UserName { get; }
|
||||
|
||||
public GetUserStrategiesCommand(string userName)
|
||||
{
|
||||
UserName = userName;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
using Managing.Application.Abstractions;
|
||||
using MediatR;
|
||||
|
||||
namespace Managing.Application.ManageBot.Commands
|
||||
{
|
||||
/// <summary>
|
||||
/// Command to retrieve a specific strategy owned by a user
|
||||
/// </summary>
|
||||
public class GetUserStrategyCommand : IRequest<ITradingBot>
|
||||
{
|
||||
/// <summary>
|
||||
/// The username of the agent/user that owns the strategy
|
||||
/// </summary>
|
||||
public string AgentName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// The name of the strategy/bot to retrieve
|
||||
/// </summary>
|
||||
public string StrategyName { get; }
|
||||
|
||||
public GetUserStrategyCommand(string agentName, string strategyName)
|
||||
{
|
||||
AgentName = agentName;
|
||||
StrategyName = strategyName;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
using Managing.Application.Abstractions;
|
||||
using Managing.Application.ManageBot.Commands;
|
||||
using MediatR;
|
||||
|
||||
namespace Managing.Application.ManageBot
|
||||
{
|
||||
public class GetUserStrategiesCommandHandler : IRequestHandler<GetUserStrategiesCommand, List<ITradingBot>>
|
||||
{
|
||||
private readonly IBotService _botService;
|
||||
|
||||
public GetUserStrategiesCommandHandler(IBotService botService)
|
||||
{
|
||||
_botService = botService;
|
||||
}
|
||||
|
||||
public Task<List<ITradingBot>> Handle(GetUserStrategiesCommand request, CancellationToken cancellationToken)
|
||||
{
|
||||
var allActiveBots = _botService.GetActiveBots();
|
||||
var userBots = allActiveBots
|
||||
.Where(bot => bot.User != null && bot.User.Name == request.UserName)
|
||||
.ToList();
|
||||
|
||||
return Task.FromResult(userBots);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Managing.Application.Abstractions;
|
||||
using Managing.Application.ManageBot.Commands;
|
||||
using MediatR;
|
||||
|
||||
namespace Managing.Application.ManageBot
|
||||
{
|
||||
/// <summary>
|
||||
/// Handler for retrieving a specific strategy owned by a user
|
||||
/// </summary>
|
||||
public class GetUserStrategyCommandHandler : IRequestHandler<GetUserStrategyCommand, ITradingBot>
|
||||
{
|
||||
private readonly IBotService _botService;
|
||||
|
||||
public GetUserStrategyCommandHandler(IBotService botService)
|
||||
{
|
||||
_botService = botService;
|
||||
}
|
||||
|
||||
public Task<ITradingBot> 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 != null &&
|
||||
bot.User.Name == request.AgentName &&
|
||||
bot.Name == request.StrategyName);
|
||||
|
||||
return Task.FromResult(strategy);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user