Refactor pagination sorting parameters across multiple controllers and services to use the new SortDirection enum; update related API models and TypeScript definitions for consistency. Fix minor documentation and naming inconsistencies in the Bot and Data controllers.

This commit is contained in:
2025-12-14 20:23:26 +07:00
parent cb6b52ef4a
commit bcb00b9a86
30 changed files with 251 additions and 202 deletions

View File

@@ -206,7 +206,7 @@ public class PostgreSqlBotRepository : IBotRepository
string? ticker = null,
string? agentName = null,
BotSortableColumn sortBy = BotSortableColumn.CreateDate,
string sortDirection = "Desc",
SortDirection sortDirection = SortDirection.Desc,
bool showOnlyProfitable = false)
{
// Build the query with filters
@@ -249,33 +249,33 @@ public class PostgreSqlBotRepository : IBotRepository
// Apply sorting
query = sortBy switch
{
BotSortableColumn.Name => sortDirection.ToLower() == "asc"
BotSortableColumn.Name => sortDirection == SortDirection.Asc
? query.OrderBy(b => b.Name)
: query.OrderByDescending(b => b.Name),
BotSortableColumn.Ticker => sortDirection.ToLower() == "asc"
BotSortableColumn.Ticker => sortDirection == SortDirection.Asc
? query.OrderBy(b => b.Ticker)
: query.OrderByDescending(b => b.Ticker),
BotSortableColumn.Status => sortDirection.ToLower() == "asc"
BotSortableColumn.Status => sortDirection == SortDirection.Asc
? query.OrderBy(b => b.Status)
: query.OrderByDescending(b => b.Status),
BotSortableColumn.StartupTime => sortDirection.ToLower() == "asc"
BotSortableColumn.StartupTime => sortDirection == SortDirection.Asc
? query.OrderBy(b => b.StartupTime)
: query.OrderByDescending(b => b.StartupTime),
BotSortableColumn.Roi => sortDirection.ToLower() == "asc"
BotSortableColumn.Roi => sortDirection == SortDirection.Asc
? query.OrderBy(b => b.Roi)
: query.OrderByDescending(b => b.Roi),
BotSortableColumn.Pnl => sortDirection.ToLower() == "asc"
BotSortableColumn.Pnl => sortDirection == SortDirection.Asc
? query.OrderBy(b => b.Pnl)
: query.OrderByDescending(b => b.Pnl),
BotSortableColumn.WinRate => sortDirection.ToLower() == "asc"
BotSortableColumn.WinRate => sortDirection == SortDirection.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),
BotSortableColumn.AgentName => sortDirection.ToLower() == "asc"
BotSortableColumn.AgentName => sortDirection == SortDirection.Asc
? query.OrderBy(b => b.User.AgentName)
: query.OrderByDescending(b => b.User.AgentName),
_ => sortDirection.ToLower() == "asc"
_ => sortDirection == SortDirection.Asc
? query.OrderBy(b => b.CreateDate)
: query.OrderByDescending(b => b.CreateDate)
};