Add admin endpoint to delete bundle backtest requests and implement related UI functionality + Add job resilient

This commit is contained in:
2025-11-10 12:28:07 +07:00
parent 0861e9a8d2
commit 91c766de86
11 changed files with 429 additions and 39 deletions

View File

@@ -228,5 +228,40 @@ public class AdminController : BaseController
return Ok(response);
}
/// <summary>
/// Deletes a bundle backtest request by ID for admin users.
/// Also deletes all related backtests associated with this bundle request.
/// This endpoint does not require user ownership - admins can delete any bundle.
/// </summary>
/// <param name="id">The ID of the bundle backtest request to delete.</param>
/// <returns>An ActionResult indicating the outcome of the operation.</returns>
[HttpDelete]
[Route("BundleBacktestRequests/{id}")]
public async Task<ActionResult> DeleteBundleBacktestRequest(string id)
{
if (!await IsUserAdmin())
{
_logger.LogWarning("Non-admin user attempted to delete bundle backtest request");
return StatusCode(403, new { error = "Only admin users can delete bundle backtest requests" });
}
if (!Guid.TryParse(id, out var requestId))
{
return BadRequest("Invalid bundle request ID format. Must be a valid GUID.");
}
// First, delete the bundle request
await _backtester.DeleteBundleBacktestRequestByIdAsync(requestId);
// Then, delete all related backtests
var backtestsDeleted = await _backtester.DeleteBacktestsByRequestIdAsync(requestId);
return Ok(new
{
BundleRequestDeleted = true,
RelatedBacktestsDeleted = backtestsDeleted
});
}
}