已完成第十一批迁移:考试维护功能已原生化到 ASP.NET Core 10。
支持考试创建、草稿修改、发布状态切换及不可逆归档。 支持科目、费用、满分和合格线策略校验。 保留已有报名禁止修改科目、待处理成绩复议禁止归档等规则。 数据修改、科目替换与审计日志使用同一数据库事务。 新增 ADMIN_NATIVE_EXAM_MANAGEMENT_ENABLED 独立开关。 路由与实现见 [AdminExamManagementService.cs (line 9)](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Infrastructure/Administration/AdminExamManagementService.cs:9) 和 [NativeAdminReadEndpoints.cs (line 133)](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Web/Administration/NativeAdminReadEndpoints.cs:133)。 迁移说明已更新至 [MIGRATION.md (line 57)](C:/Users/BI/Documents/EIS-dotnet/MIGRATION.md:57)。
This commit is contained in:
@@ -129,6 +129,16 @@ public static class NativeAdminReadEndpoints
|
||||
endpoints.MapPatch("/api/admin/workflow-instances/{instanceId}/supervise", (HttpContext context, string instanceId, JsonObject body, IAdminWorkflowService service, CancellationToken cancellationToken) =>
|
||||
Execute(context, service.SuperviseAsync(Token(context), instanceId, body, cancellationToken)));
|
||||
}
|
||||
|
||||
if (options.NativeExamManagementEnabled)
|
||||
{
|
||||
endpoints.MapPost("/api/admin/exams", (HttpContext context, JsonObject body, IAdminExamManagementService service, CancellationToken cancellationToken) =>
|
||||
Execute(context, service.CreateAsync(Token(context), body, cancellationToken)));
|
||||
endpoints.MapPatch("/api/admin/exams/{examId}", (HttpContext context, string examId, JsonObject body, IAdminExamManagementService service, CancellationToken cancellationToken) =>
|
||||
Execute(context, service.UpdateAsync(Token(context), examId, body, cancellationToken)));
|
||||
endpoints.MapPost("/api/admin/exams/{examId}/archive", (HttpContext context, string examId, IAdminExamManagementService service, CancellationToken cancellationToken) =>
|
||||
Execute(context, service.ArchiveAsync(Token(context), examId, cancellationToken)));
|
||||
}
|
||||
return endpoints;
|
||||
}
|
||||
|
||||
|
||||
@@ -54,7 +54,8 @@ var adminMigrationOptions = AdminMigrationOptions.FromEnvironment(
|
||||
builder.Configuration.GetValue<bool>("AdminMigration:NativeOperationalReadsEnabled"),
|
||||
builder.Configuration.GetValue<bool>("AdminMigration:NativeCandidateManagementEnabled"),
|
||||
builder.Configuration.GetValue<bool>("AdminMigration:NativeRegistrationPaymentWritesEnabled"),
|
||||
builder.Configuration.GetValue<bool>("AdminMigration:NativeWorkflowOperationsEnabled"));
|
||||
builder.Configuration.GetValue<bool>("AdminMigration:NativeWorkflowOperationsEnabled"),
|
||||
builder.Configuration.GetValue<bool>("AdminMigration:NativeExamManagementEnabled"));
|
||||
builder.Services.AddEisInfrastructure(
|
||||
DatabaseOptions.FromEnvironment(applicationRoot, builder.Environment.IsProduction()),
|
||||
DocumentVerificationOptions.FromEnvironment(builder.Environment.IsProduction()),
|
||||
@@ -118,6 +119,7 @@ app.MapGet("/health/migration", async (LegacyApiProxy proxy, CancellationToken c
|
||||
nativeCandidateManagementEnabled = adminMigrationOptions.NativeCandidateManagementEnabled,
|
||||
nativeRegistrationPaymentWritesEnabled = adminMigrationOptions.NativeRegistrationPaymentWritesEnabled,
|
||||
nativeWorkflowOperationsEnabled = adminMigrationOptions.NativeWorkflowOperationsEnabled,
|
||||
nativeExamManagementEnabled = adminMigrationOptions.NativeExamManagementEnabled,
|
||||
nativeRoutes = (adminMigrationOptions.NativeReadsEnabled
|
||||
? new[] { "GET context", "GET dashboard", "GET schools", "GET school-organization", "GET admins", "GET exams" }
|
||||
: [])
|
||||
@@ -152,6 +154,9 @@ app.MapGet("/health/migration", async (LegacyApiProxy proxy, CancellationToken c
|
||||
.Concat(adminMigrationOptions.NativeWorkflowOperationsEnabled
|
||||
? new[] { "GET workflow-instances", "PATCH workflow transfer/supervise" }
|
||||
: [])
|
||||
.Concat(adminMigrationOptions.NativeExamManagementEnabled
|
||||
? new[] { "POST/PATCH exams", "POST exam archive" }
|
||||
: [])
|
||||
.ToArray()
|
||||
},
|
||||
features = MigrationFeatureCatalog.Current(authenticationOptions.NativeEnabled, candidateMigrationOptions.NativeEnabled)
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
"NativeOperationalReadsEnabled": false,
|
||||
"NativeCandidateManagementEnabled": false,
|
||||
"NativeRegistrationPaymentWritesEnabled": false,
|
||||
"NativeWorkflowOperationsEnabled": false
|
||||
"NativeWorkflowOperationsEnabled": false,
|
||||
"NativeExamManagementEnabled": false
|
||||
},
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
|
||||
Reference in New Issue
Block a user