@model SceneEditViewModel @{ var purposeLabels = Model.ScenePurposeTypes .Where(x => Model.SelectedPurposeTypeIds.Contains(x.ScenePurposeTypeID)) .Select(x => x.PurposeName) .ToList(); var threadCount = Model.ThreadEvents.Count; var dependencyCount = Model.DependenciesThisSceneNeeds.Count + Model.DependenciesNeedingThisScene.Count; }

Story

Purpose and structure

Purpose @if (purposeLabels.Any()) {
@foreach (var purpose in purposeLabels) { @purpose }
} else {

No purpose selected yet.

} @if (!string.IsNullOrWhiteSpace(Model.ScenePurposeNotes)) {

@Model.ScenePurposeNotes

}
Outcome

@(string.IsNullOrWhiteSpace(Model.SceneOutcomeNotes) ? "No outcome has been captured yet." : Model.SceneOutcomeNotes)

Plot threads

@threadCount thread event@(threadCount == 1 ? "" : "s") in this scene.

Dependencies

@dependencyCount scene dependenc@(dependencyCount == 1 ? "y" : "ies") attached.

Metrics @if (!Model.Metrics.Any()) {

No active scene metrics are configured.

} else {
@foreach (var metric in Model.Metrics) { var range = Math.Max(1, metric.MaxValue - metric.MinValue); var clampedValue = Math.Min(metric.MaxValue, Math.Max(metric.MinValue, metric.Value)); var percent = (int)Math.Round(((double)(clampedValue - metric.MinValue) / range) * 100);
@metric.MetricName @metric.Value
}
}