Add admin page for bundle
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
using Managing.Domain.Backtests;
|
||||
|
||||
namespace Managing.Application.Abstractions.Repositories;
|
||||
|
||||
/// <summary>
|
||||
/// Summary statistics for bundle backtest requests
|
||||
/// </summary>
|
||||
public class BundleBacktestRequestSummary
|
||||
{
|
||||
/// <summary>
|
||||
/// Counts of bundle requests by status
|
||||
/// </summary>
|
||||
public List<BundleBacktestRequestStatusCount> StatusCounts { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Total number of bundle backtest requests
|
||||
/// </summary>
|
||||
public int TotalRequests { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Count of bundle backtest requests by status
|
||||
/// </summary>
|
||||
public class BundleBacktestRequestStatusCount
|
||||
{
|
||||
/// <summary>
|
||||
/// The status
|
||||
/// </summary>
|
||||
public BundleBacktestRequestStatus Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The count of bundle requests with this status
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
}
|
||||
|
||||
@@ -57,4 +57,22 @@ public interface IBacktestRepository
|
||||
Task DeleteBundleBacktestRequestByIdForUserAsync(User user, Guid id);
|
||||
IEnumerable<BundleBacktestRequest> GetBundleBacktestRequestsByStatus(BundleBacktestRequestStatus status);
|
||||
Task<IEnumerable<BundleBacktestRequest>> GetBundleBacktestRequestsByStatusAsync(BundleBacktestRequestStatus status);
|
||||
|
||||
// Admin methods - no user filter
|
||||
(IEnumerable<BundleBacktestRequest> BundleRequests, int TotalCount) GetBundleBacktestRequestsPaginated(
|
||||
int page,
|
||||
int pageSize,
|
||||
Enums.BundleBacktestRequestSortableColumn sortBy = Enums.BundleBacktestRequestSortableColumn.CreatedAt,
|
||||
string sortOrder = "desc",
|
||||
BundleBacktestRequestsFilter? filter = null);
|
||||
|
||||
Task<(IEnumerable<BundleBacktestRequest> BundleRequests, int TotalCount)> GetBundleBacktestRequestsPaginatedAsync(
|
||||
int page,
|
||||
int pageSize,
|
||||
Enums.BundleBacktestRequestSortableColumn sortBy = Enums.BundleBacktestRequestSortableColumn.CreatedAt,
|
||||
string sortOrder = "desc",
|
||||
BundleBacktestRequestsFilter? filter = null);
|
||||
|
||||
// Admin summary methods
|
||||
Task<BundleBacktestRequestSummary> GetBundleBacktestRequestsSummaryAsync();
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using Managing.Application.Abstractions.Shared;
|
||||
using Managing.Application.Abstractions.Repositories;
|
||||
using Managing.Application.Abstractions.Shared;
|
||||
using Managing.Common;
|
||||
using Managing.Domain.Backtests;
|
||||
using Managing.Domain.Bots;
|
||||
@@ -98,6 +99,21 @@ namespace Managing.Application.Abstractions.Services
|
||||
IEnumerable<BundleBacktestRequest> GetBundleBacktestRequestsByStatus(BundleBacktestRequestStatus status);
|
||||
Task<IEnumerable<BundleBacktestRequest>> GetBundleBacktestRequestsByStatusAsync(BundleBacktestRequestStatus status);
|
||||
|
||||
// Admin methods - no user filter
|
||||
(IEnumerable<BundleBacktestRequest> BundleRequests, int TotalCount) GetBundleBacktestRequestsPaginated(
|
||||
int page,
|
||||
int pageSize,
|
||||
Enums.BundleBacktestRequestSortableColumn sortBy = Enums.BundleBacktestRequestSortableColumn.CreatedAt,
|
||||
string sortOrder = "desc",
|
||||
BundleBacktestRequestsFilter? filter = null);
|
||||
|
||||
Task<(IEnumerable<BundleBacktestRequest> BundleRequests, int TotalCount)> GetBundleBacktestRequestsPaginatedAsync(
|
||||
int page,
|
||||
int pageSize,
|
||||
Enums.BundleBacktestRequestSortableColumn sortBy = Enums.BundleBacktestRequestSortableColumn.CreatedAt,
|
||||
string sortOrder = "desc",
|
||||
BundleBacktestRequestsFilter? filter = null);
|
||||
|
||||
Task<BundleBacktestRequestSummary> GetBundleBacktestRequestsSummaryAsync();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
using Managing.Domain.Backtests;
|
||||
|
||||
namespace Managing.Application.Abstractions.Shared;
|
||||
|
||||
/// <summary>
|
||||
/// Filter model for bundle backtest requests
|
||||
/// </summary>
|
||||
public class BundleBacktestRequestsFilter
|
||||
{
|
||||
/// <summary>
|
||||
/// Filter by name contains (case-insensitive)
|
||||
/// </summary>
|
||||
public string? NameContains { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by status
|
||||
/// </summary>
|
||||
public BundleBacktestRequestStatus? Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by user ID
|
||||
/// </summary>
|
||||
public int? UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by user name contains (case-insensitive)
|
||||
/// </summary>
|
||||
public string? UserNameContains { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by minimum total backtests
|
||||
/// </summary>
|
||||
public int? TotalBacktestsMin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by maximum total backtests
|
||||
/// </summary>
|
||||
public int? TotalBacktestsMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by minimum completed backtests
|
||||
/// </summary>
|
||||
public int? CompletedBacktestsMin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by maximum completed backtests
|
||||
/// </summary>
|
||||
public int? CompletedBacktestsMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by minimum progress percentage (0-100)
|
||||
/// </summary>
|
||||
public double? ProgressPercentageMin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by maximum progress percentage (0-100)
|
||||
/// </summary>
|
||||
public double? ProgressPercentageMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by created date from
|
||||
/// </summary>
|
||||
public DateTime? CreatedAtFrom { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by created date to
|
||||
/// </summary>
|
||||
public DateTime? CreatedAtTo { get; set; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user