9468050979
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (push) Failing after 5s
Quant Engine CI/CD Pipeline / validate-core (push) Failing after 12s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (push) Has been skipped
Deploy to Production / Build & Deploy to Production (push) Failing after 1m15s
Add comprehensive CRUD pages: - Users/Create.cshtml(.cs): Add new admin user with password hashing - Collection/Detail.cshtml(.cs): View collection run details with success criteria evaluation Success criteria evaluation integrated: - Status + TotalSnapshots + TotalErrors → Success/Partial/Failure badge - Follows Collection run success definitions from CLAUDE.md Build: 0 errors, 0 warnings Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
35 lines
1.0 KiB
C#
35 lines
1.0 KiB
C#
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
|
using QuantEngine.Core.Interfaces;
|
|
using QuantEngine.Web.Services;
|
|
|
|
namespace QuantEngine.Web.Pages.Admin.Collection;
|
|
|
|
[Authorize(AuthenticationSchemes = AdminAuthDefaults.Scheme)]
|
|
public class DetailModel : PageModel
|
|
{
|
|
private readonly ICollectionRepository _collectionRepository;
|
|
private readonly ILogger<DetailModel> _logger;
|
|
|
|
public CollectionRunRecord? Run { get; set; }
|
|
|
|
public DetailModel(ICollectionRepository collectionRepository, ILogger<DetailModel> logger)
|
|
{
|
|
_collectionRepository = collectionRepository;
|
|
_logger = logger;
|
|
}
|
|
|
|
public async Task OnGetAsync(string runId)
|
|
{
|
|
try
|
|
{
|
|
var runs = await _collectionRepository.GetRecentRunsAsync(limit: 100);
|
|
Run = runs.FirstOrDefault(r => r.RunId == runId);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError(ex, "Failed to load collection run detail");
|
|
}
|
|
}
|
|
}
|