@model StoryIntelligenceProgressViewModel @{ ViewData["Title"] = "Review assets"; const int previewLimit = 50; var showAll = string.Equals(Context.Request.Query["view"], "all", StringComparison.OrdinalIgnoreCase); var assetCandidates = showAll ? Model.AssetReview.Candidates.ToList() : Model.AssetReview.Candidates.Take(previewLimit).ToList(); var hiddenCandidateCount = Math.Max(0, Model.AssetReview.Candidates.Count - assetCandidates.Count); }

Story Intelligence

Review Assets

Review important object suggestions that need a create, link, alias, or ignore decision.

@if (TempData["OnboardingStoryIntelligenceError"] is string error) {
@error
} @if (TempData["OnboardingStoryIntelligenceMessage"] is string message) {
@message
}
@if (Model.AssetReview.Candidates.Count == 0) {
No asset decisions are waiting.

Assets are already up to date, or there were no story-significant asset suggestions ready to import.

Back to Review Centre
} else {
@if (hiddenCandidateCount > 0) { View all @Model.AssetReview.Candidates.Count.ToString("N0") }
@for (var i = 0; i < assetCandidates.Count; i++) { var candidate = assetCandidates[i];
@candidate.AssetName @candidate.Category ยท @candidate.AppearsInScenes.ToString("N0") scene@(candidate.AppearsInScenes == 1 ? string.Empty : "s") @candidate.Confidence
First appearance
@Display(candidate.ExampleFirstAppearance)
Possible owner
@Display(candidate.PossibleOwner)
Existing match
@(candidate.ExistingAssetName ?? "None")
@if (candidate.PossibleAliases.Any()) {
Possible aliases

@string.Join(", ", candidate.PossibleAliases)

} @if (!string.IsNullOrWhiteSpace(candidate.ExampleContext)) {
Scene context

@candidate.ExampleContext

} @if (candidate.IsExistingMatch) {
Possible existing asset

@candidate.AssetName may already be @candidate.ExistingAssetName. Choose whether to link them or create a separate asset.

}
Decision
}
@if (hiddenCandidateCount > 0) { @hiddenCandidateCount.ToString("N0") more asset decision@(hiddenCandidateCount == 1 ? string.Empty : "s") available after this batch. } Back to Review Centre
}
@section Scripts { } @functions { private static string Display(string? value) => string.IsNullOrWhiteSpace(value) ? "Not detected" : value; }