Delete backtest by request id
This commit is contained in:
@@ -500,6 +500,7 @@ public class BacktestController : BaseController
|
|||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Deletes a specific genetic request by ID for the authenticated user.
|
/// Deletes a specific genetic request by ID for the authenticated user.
|
||||||
|
/// Also deletes all related backtests associated with this genetic request.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">The ID of the genetic request to delete.</param>
|
/// <param name="id">The ID of the genetic request to delete.</param>
|
||||||
/// <returns>An ActionResult indicating the outcome of the operation.</returns>
|
/// <returns>An ActionResult indicating the outcome of the operation.</returns>
|
||||||
@@ -508,8 +509,17 @@ public class BacktestController : BaseController
|
|||||||
public async Task<ActionResult> DeleteGeneticRequest(string id)
|
public async Task<ActionResult> DeleteGeneticRequest(string id)
|
||||||
{
|
{
|
||||||
var user = await GetUser();
|
var user = await GetUser();
|
||||||
|
|
||||||
|
// First, delete the genetic request
|
||||||
_geneticService.DeleteGeneticRequestByIdForUser(user, id);
|
_geneticService.DeleteGeneticRequestByIdForUser(user, id);
|
||||||
return Ok();
|
|
||||||
|
// Then, delete all related backtests
|
||||||
|
var backtestsDeleted = _backtester.DeleteBacktestsByRequestId(id);
|
||||||
|
|
||||||
|
return Ok(new {
|
||||||
|
GeneticRequestDeleted = true,
|
||||||
|
RelatedBacktestsDeleted = backtestsDeleted
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -14,4 +14,5 @@ public interface IBacktestRepository
|
|||||||
void DeleteBacktestByIdForUser(User user, string id);
|
void DeleteBacktestByIdForUser(User user, string id);
|
||||||
void DeleteBacktestsByIdsForUser(User user, IEnumerable<string> ids);
|
void DeleteBacktestsByIdsForUser(User user, IEnumerable<string> ids);
|
||||||
void DeleteAllBacktestsForUser(User user);
|
void DeleteAllBacktestsForUser(User user);
|
||||||
|
void DeleteBacktestsByRequestId(string requestId);
|
||||||
}
|
}
|
||||||
@@ -59,6 +59,7 @@ namespace Managing.Application.Abstractions.Services
|
|||||||
bool DeleteBacktestByUser(User user, string id);
|
bool DeleteBacktestByUser(User user, string id);
|
||||||
bool DeleteBacktestsByIdsForUser(User user, IEnumerable<string> ids);
|
bool DeleteBacktestsByIdsForUser(User user, IEnumerable<string> ids);
|
||||||
bool DeleteBacktestsByUser(User user);
|
bool DeleteBacktestsByUser(User user);
|
||||||
|
bool DeleteBacktestsByRequestId(string requestId);
|
||||||
(IEnumerable<LightBacktest> Backtests, int TotalCount) GetBacktestsByUserPaginated(User user, int page, int pageSize, string sortBy = "score", string sortOrder = "desc");
|
(IEnumerable<LightBacktest> Backtests, int TotalCount) GetBacktestsByUserPaginated(User user, int page, int pageSize, string sortBy = "score", string sortOrder = "desc");
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -552,6 +552,20 @@ namespace Managing.Application.Backtesting
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool DeleteBacktestsByRequestId(string requestId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_backtestRepository.DeleteBacktestsByRequestId(requestId);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Failed to delete backtests for request ID {RequestId}", requestId);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public (IEnumerable<LightBacktest> Backtests, int TotalCount) GetBacktestsByUserPaginated(User user, int page,
|
public (IEnumerable<LightBacktest> Backtests, int TotalCount) GetBacktestsByUserPaginated(User user, int page,
|
||||||
int pageSize, string sortBy = "score", string sortOrder = "desc")
|
int pageSize, string sortBy = "score", string sortOrder = "desc")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -212,6 +212,18 @@ public class BacktestRepository : IBacktestRepository
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void DeleteBacktestsByRequestId(string requestId)
|
||||||
|
{
|
||||||
|
var backtests = _backtestRepository.AsQueryable()
|
||||||
|
.Where(b => b.RequestId == requestId)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
foreach (var backtest in backtests)
|
||||||
|
{
|
||||||
|
_backtestRepository.DeleteById(backtest.Id.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public (IEnumerable<LightBacktest> Backtests, int TotalCount) GetBacktestsByUserPaginated(User user, int page,
|
public (IEnumerable<LightBacktest> Backtests, int TotalCount) GetBacktestsByUserPaginated(User user, int page,
|
||||||
int pageSize, string sortBy = "score", string sortOrder = "desc")
|
int pageSize, string sortBy = "score", string sortOrder = "desc")
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user