Add ROI to botPaginated

This commit is contained in:
2025-10-06 23:54:59 +07:00
parent 51fbef6072
commit 85000644a6
10 changed files with 69 additions and 84 deletions

View File

@@ -170,7 +170,7 @@ public class PostgreSqlBotRepository : IBotRepository
string? name = null,
string? ticker = null,
string? agentName = null,
string sortBy = "CreateDate",
BotSortableColumn sortBy = BotSortableColumn.CreateDate,
string sortDirection = "Desc")
{
// Build the query with filters
@@ -204,32 +204,35 @@ public class PostgreSqlBotRepository : IBotRepository
var totalCount = await query.CountAsync().ConfigureAwait(false);
// Apply sorting
query = sortBy.ToLower() switch
query = sortBy switch
{
"name" => sortDirection.ToLower() == "asc"
BotSortableColumn.Name => sortDirection.ToLower() == "asc"
? query.OrderBy(b => b.Name)
: query.OrderByDescending(b => b.Name),
"ticker" => sortDirection.ToLower() == "asc"
BotSortableColumn.Ticker => sortDirection.ToLower() == "asc"
? query.OrderBy(b => b.Ticker)
: query.OrderByDescending(b => b.Ticker),
"status" => sortDirection.ToLower() == "asc"
BotSortableColumn.Status => sortDirection.ToLower() == "asc"
? query.OrderBy(b => b.Status)
: query.OrderByDescending(b => b.Status),
"startuptime" => sortDirection.ToLower() == "asc"
BotSortableColumn.StartupTime => sortDirection.ToLower() == "asc"
? query.OrderBy(b => b.StartupTime)
: query.OrderByDescending(b => b.StartupTime),
"pnl" => sortDirection.ToLower() == "asc"
BotSortableColumn.Roi => sortDirection.ToLower() == "asc"
? query.OrderBy(b => b.Roi)
: query.OrderByDescending(b => b.Roi),
BotSortableColumn.Pnl => sortDirection.ToLower() == "asc"
? query.OrderBy(b => b.Pnl)
: query.OrderByDescending(b => b.Pnl),
"winrate" => sortDirection.ToLower() == "asc"
BotSortableColumn.WinRate => sortDirection.ToLower() == "asc"
? query.OrderBy(b => (b.TradeWins + b.TradeLosses) > 0 ? (double)b.TradeWins / (b.TradeWins + b.TradeLosses) : 0)
: query.OrderByDescending(b => (b.TradeWins + b.TradeLosses) > 0 ? (double)b.TradeWins / (b.TradeWins + b.TradeLosses) : 0),
"agentname" => sortDirection.ToLower() == "asc"
BotSortableColumn.AgentName => sortDirection.ToLower() == "asc"
? query.OrderBy(b => b.User.AgentName)
: query.OrderByDescending(b => b.User.AgentName),
_ => sortDirection.ToLower() == "asc"
? query.OrderBy(b => b.CreateDate)
: query.OrderByDescending(b => b.CreateDate) // Default to CreateDate
: query.OrderByDescending(b => b.CreateDate)
};
// Apply pagination