@model PlotLine.Models.ManuscriptTextStatistics @{ var dialoguePercent = Math.Clamp(Model.DialoguePercentage, 0m, 100m); var balanceLabel = BalanceLabel(dialoguePercent); }
@balanceLabel @dialoguePercent.ToString("0.#")% dialogue

@Model.TotalWordCount.ToString("N0") words · @Model.DialogueWordCount.ToString("N0") dialogue · @Model.ProseWordCount.ToString("N0") prose @if (Model.TotalParagraphCount > 0) { · @Model.TotalParagraphCount.ToString("N0") paragraphs · @Model.DialogueParagraphCount.ToString("N0") dialogue }

@functions { private static string BalanceLabel(decimal dialoguePercent) { if (dialoguePercent < 25m) { return "Very prose-heavy"; } if (dialoguePercent < 45m) { return "Prose-heavy"; } if (dialoguePercent <= 55m) { return "Balanced"; } return dialoguePercent <= 75m ? "Dialogue-heavy" : "Very dialogue-heavy"; } }