Update the position count and initiator
This commit is contained in:
@@ -12,7 +12,6 @@ using Managing.Domain.Scenarios;
|
||||
using Managing.Domain.Statistics;
|
||||
using Managing.Domain.Strategies;
|
||||
using Managing.Domain.Strategies.Base;
|
||||
using Managing.Domain.Trades;
|
||||
using MediatR;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
@@ -411,9 +410,10 @@ public class DataController : ControllerBase
|
||||
var userStrategies = await _mediator.Send(new GetUserStrategiesCommand(agentName));
|
||||
|
||||
// Convert to detailed view model with additional information
|
||||
var result = userStrategies.Select(strategy => MapStrategyToViewModel(strategy)).ToList();
|
||||
var tasks = userStrategies.Select(strategy => MapStrategyToViewModelAsync(strategy));
|
||||
var result = await Task.WhenAll(tasks);
|
||||
|
||||
return Ok(result);
|
||||
return Ok(result.ToList());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -434,7 +434,7 @@ public class DataController : ControllerBase
|
||||
}
|
||||
|
||||
// Map the strategy to a view model using the shared method
|
||||
var result = MapStrategyToViewModel(strategy);
|
||||
var result = await MapStrategyToViewModelAsync(strategy);
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
@@ -444,7 +444,7 @@ public class DataController : ControllerBase
|
||||
/// </summary>
|
||||
/// <param name="strategy">The trading bot to map</param>
|
||||
/// <returns>A view model with detailed strategy information</returns>
|
||||
private UserStrategyDetailsViewModel MapStrategyToViewModel(Bot strategy)
|
||||
private async Task<UserStrategyDetailsViewModel> MapStrategyToViewModelAsync(Bot strategy)
|
||||
{
|
||||
// Calculate ROI percentage based on PnL relative to account value
|
||||
decimal pnl = strategy.Pnl;
|
||||
@@ -464,6 +464,9 @@ public class DataController : ControllerBase
|
||||
// Calculate ROI for last 24h
|
||||
decimal roiLast24h = strategy.Roi;
|
||||
|
||||
// Fetch positions associated with this bot
|
||||
var positions = await _tradingService.GetPositionsByInitiatorIdentifierAsync(strategy.Identifier);
|
||||
|
||||
return new UserStrategyDetailsViewModel
|
||||
{
|
||||
Name = strategy.Name,
|
||||
@@ -477,7 +480,7 @@ public class DataController : ControllerBase
|
||||
VolumeLast24H = volumeLast24h,
|
||||
Wins = wins,
|
||||
Losses = losses,
|
||||
Positions = new List<Position>(),
|
||||
Positions = positions.ToList(),
|
||||
Identifier = strategy.Identifier,
|
||||
WalletBalances = new Dictionary<DateTime, decimal>(),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user