Add front for bundle
This commit is contained in:
@@ -411,21 +411,20 @@ public class BacktestController : BaseController
|
||||
/// <param name="name">Display name for the bundle (required).</param>
|
||||
/// <returns>The bundle backtest request with ID for tracking progress.</returns>
|
||||
[HttpPost]
|
||||
[Route("Bundle")]
|
||||
public async Task<ActionResult<BundleBacktestRequest>> RunBundle([FromBody] List<RunBacktestRequest> requests,
|
||||
[FromQuery] string name)
|
||||
[Route("BacktestBundle")]
|
||||
public async Task<ActionResult<BundleBacktestRequest>> RunBundle([FromBody] RunBundleBacktestRequest request)
|
||||
{
|
||||
if (requests == null || !requests.Any())
|
||||
if (request?.Requests == null || !request.Requests.Any())
|
||||
{
|
||||
return BadRequest("At least one backtest request is required");
|
||||
}
|
||||
|
||||
if (requests.Count > 10)
|
||||
if (request.Requests.Count > 10)
|
||||
{
|
||||
return BadRequest("Maximum of 10 backtests allowed per bundle request");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(name))
|
||||
if (string.IsNullOrWhiteSpace(request.Name))
|
||||
{
|
||||
return BadRequest("Bundle name is required");
|
||||
}
|
||||
@@ -435,24 +434,24 @@ public class BacktestController : BaseController
|
||||
var user = await GetUser();
|
||||
|
||||
// Validate all requests before creating the bundle
|
||||
foreach (var request in requests)
|
||||
foreach (var req in request.Requests)
|
||||
{
|
||||
if (request?.Config == null)
|
||||
if (req?.Config == null)
|
||||
{
|
||||
return BadRequest("Invalid request: Configuration is required");
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(request.Config.AccountName))
|
||||
if (string.IsNullOrEmpty(req.Config.AccountName))
|
||||
{
|
||||
return BadRequest("Invalid request: Account name is required");
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(request.Config.ScenarioName) && request.Config.Scenario == null)
|
||||
if (string.IsNullOrEmpty(req.Config.ScenarioName) && req.Config.Scenario == null)
|
||||
{
|
||||
return BadRequest("Invalid request: Either scenario name or scenario object is required");
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(request.Config.MoneyManagementName) && request.Config.MoneyManagement == null)
|
||||
if (string.IsNullOrEmpty(req.Config.MoneyManagementName) && req.Config.MoneyManagement == null)
|
||||
{
|
||||
return BadRequest(
|
||||
"Invalid request: Either money management name or money management object is required");
|
||||
@@ -463,16 +462,15 @@ public class BacktestController : BaseController
|
||||
var bundleRequest = new BundleBacktestRequest
|
||||
{
|
||||
User = user,
|
||||
BacktestRequestsJson = JsonSerializer.Serialize(requests),
|
||||
TotalBacktests = requests.Count,
|
||||
BacktestRequestsJson = JsonSerializer.Serialize(request.Requests),
|
||||
TotalBacktests = request.Requests.Count,
|
||||
CompletedBacktests = 0,
|
||||
FailedBacktests = 0,
|
||||
Status = BundleBacktestRequestStatus.Pending,
|
||||
Name = name
|
||||
Name = request.Name
|
||||
};
|
||||
|
||||
_backtester.InsertBundleBacktestRequestForUser(user, bundleRequest);
|
||||
|
||||
return Ok(bundleRequest);
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
Reference in New Issue
Block a user