Expose imported critical data in web app

This commit is contained in:
2026-03-14 02:40:57 +01:00
parent c7467aad13
commit 73ce64e879
9 changed files with 331 additions and 44 deletions

View File

@@ -26,6 +26,7 @@ public sealed class LookupService(IDbContextFactory<RolemasterDbContext> dbConte
.AsSplitQuery()
.Include(item => item.Columns)
.Include(item => item.Groups)
.Include(item => item.RollBands)
.OrderBy(item => item.DisplayName)
.ToListAsync(cancellationToken);
@@ -35,8 +36,21 @@ public sealed class LookupService(IDbContextFactory<RolemasterDbContext> dbConte
criticalTables.Select(item => new CriticalTableReference(
item.Slug,
item.DisplayName,
item.Columns.OrderBy(column => column.SortOrder).Select(column => new LookupOption(column.ColumnKey, column.Label)).ToList(),
item.Groups.OrderBy(group => group.SortOrder).Select(group => new LookupOption(group.GroupKey, group.Label)).ToList()))
item.Family,
item.SourceDocument,
item.Notes,
item.Columns
.OrderBy(column => column.SortOrder)
.Select(column => new CriticalColumnReference(column.ColumnKey, column.Label, column.Role, column.SortOrder))
.ToList(),
item.Groups
.OrderBy(group => group.SortOrder)
.Select(group => new CriticalGroupReference(group.GroupKey, group.Label, group.SortOrder))
.ToList(),
item.RollBands
.OrderBy(rollBand => rollBand.SortOrder)
.Select(rollBand => new CriticalRollBandReference(rollBand.Label, rollBand.MinRoll, rollBand.MaxRoll, rollBand.SortOrder))
.ToList()))
.ToList());
}
@@ -102,12 +116,23 @@ public sealed class LookupService(IDbContextFactory<RolemasterDbContext> dbConte
.Select(item => new CriticalLookupResponse(
item.CriticalTable.Slug,
item.CriticalTable.DisplayName,
item.CriticalTable.Family,
item.CriticalTable.SourceDocument,
item.CriticalTable.Notes,
item.CriticalGroup != null ? item.CriticalGroup.GroupKey : null,
item.CriticalGroup != null ? item.CriticalGroup.Label : null,
item.CriticalColumn.ColumnKey,
item.CriticalColumn.Label,
item.CriticalColumn.Role,
request.Roll,
item.CriticalRollBand.Label,
item.CriticalRollBand.MinRoll,
item.CriticalRollBand.MaxRoll,
item.RawCellText,
item.DescriptionText,
item.RawAffixText))
item.RawAffixText,
item.ParseStatus,
item.ParsedJson))
.SingleOrDefaultAsync(cancellationToken);
}