@model StoryIntelligenceExperiencePrototypeViewModel @{ ViewData["Title"] = "Story Intelligence Illustration Diagnostics"; var characters = Model.Scenes.SelectMany(scene => scene.Characters.Select(character => new { Scene = scene, Character = character })).ToList(); var locations = Model.Scenes.Select(scene => new { Scene = scene, Location = scene.Location }).ToList(); var assets = Model.Scenes.SelectMany(scene => scene.Assets.Select(asset => new { Scene = scene, Asset = asset })).ToList(); }

Development diagnostics

Story Intelligence Illustration Diagnostics

Import Session @Model.ImportSessionId · @Model.BookTitle · Snapshot @Model.GeneratedUtc.ToString("yyyy-MM-dd HH:mm:ss") UTC

Characters

@foreach (var row in characters) { }
Scene Identity Illustration Resolved evidence Revalidation Assignment Previous / change Demand Demand key Candidate diagnostics
@row.Scene.SceneNumber @row.Character.Name
@row.Character.Id
@(row.Character.ImageResolution.StableCode ?? row.Character.LibraryCode)
@row.Character.ImageResolution.Status
Age @Display(row.Character.ImageResolution.ResolvedAgeBand)
Presentation @Display(row.Character.ImageResolution.ResolvedPresentation)
@Display(row.Character.ImageResolution.EvidenceWarnings)
@Revalidation(row.Character.ImageResolution) @Display(row.Character.ImageResolution.ReasonChosen)
@Display(row.Character.ImageResolution.IllustrationAllocationStatus)
Previous illustration: @Display(row.Character.ImageResolution.PreviousIllustration)
Change: @Display(row.Character.ImageResolution.ReasonReassigned)
Evidence
Previous: @Display(row.Character.ImageResolution.PreviousEvidence)
Current: @Display(row.Character.ImageResolution.CurrentEvidence)
@Display(row.Character.ImageResolution.DemandStatus) @Display(row.Character.ImageResolution.DemandKey)
@Display(row.Character.ImageResolution.RejectedCandidates)

Locations

@foreach (var row in locations) { var type = StoryIntelligenceIllustrationCompatibility.LocationType($"{row.Location.Name} {row.Location.Label}"); }
Scene Location Semantic type Illustration Fallback
@row.Scene.SceneNumber @row.Location.Name
@row.Location.Id
@type @row.Location.LibraryCode
@row.Location.ImageResolution.Status
@row.Location.ImageResolution.FallbackUsed

Assets

@foreach (var row in assets) { var type = StoryIntelligenceIllustrationCompatibility.AssetType($"{row.Asset.Name} {row.Asset.Label}"); }
Scene Asset Semantic type Illustration Fallback
@row.Scene.SceneNumber @row.Asset.Name
@row.Asset.Id
@type @row.Asset.LibraryCode
@row.Asset.ImageResolution.Status
@row.Asset.ImageResolution.FallbackUsed
@functions { private static string Display(string? value) => string.IsNullOrWhiteSpace(value) ? "none" : value; private static string Revalidation(StoryIntelligenceExperienceImageResolution resolution) { if (string.Equals(resolution.Status, "GroupEntity", StringComparison.OrdinalIgnoreCase)) { return "Group entity"; } if (resolution.FallbackUsed) { return "No compatible illustration"; } return string.IsNullOrWhiteSpace(resolution.ReasonReassigned) ? "Passed" : "Reassigned"; } }