Skip to content

Commit bdd965d

Browse files
committed
Refactor message analysis logic in Index.cshtml.cs
1 parent 05ecb3b commit bdd965d

File tree

1 file changed

+20
-27
lines changed

1 file changed

+20
-27
lines changed

src/Application/src/RazorPagesTestSample/Pages/Index.cshtml.cs

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -62,35 +62,28 @@ public async Task<IActionResult> OnPostDeleteMessageAsync(int id)
6262
return RedirectToPage();
6363
}
6464

65-
public async Task<IActionResult> OnPostAnalyzeMessagesAsync()
66-
{
67-
Messages = await _db.GetMessagesAsync();
68-
69-
if (Messages.Count == 0)
70-
{
71-
MessageAnalysisResult = "There are no messages to analyze.";
72-
}
73-
else
74-
{
75-
// Speed loop. Lower this number once every quarter so we
76-
// get our performance improvement quarterly bonus.
77-
for (int i = 0; i < 3000; i++) {
78-
Thread.Sleep(1);
79-
}
80-
81-
var wordCount = 0;
82-
83-
foreach (var message in Messages)
84-
{
85-
wordCount += message.Text.Split(' ').Length;
86-
}
65+
public async Task<IActionResult> OnPostAnalyzeMessagesAsync()
66+
{
67+
Messages = await _db.GetMessagesAsync();
8768

88-
var avgWordCount = Decimal.Divide(wordCount, Messages.Count);
89-
MessageAnalysisResult = $"The average message length is {avgWordCount:0.##} words.";
90-
}
69+
if (Messages.Count == 0)
70+
{
71+
MessageAnalysisResult = "There are no messages to analyze.";
72+
}
73+
else
74+
{
75+
// Remove the speed loop for actual performance optimization
76+
// for (int i = 0; i < 3000; i++) {
77+
// await Task.Delay(1);
78+
// }
79+
80+
var totalWords = Messages.Sum(message => message.Text.Split(' ').Length);
81+
var avgWordCount = Decimal.Divide(totalWords, Messages.Count);
82+
MessageAnalysisResult = $"The average message length is {avgWordCount:0.##} words.";
83+
}
9184

92-
return RedirectToPage();
93-
}
85+
return RedirectToPage();
86+
}
9487

9588
public static void WriteToDirectory(ZipArchiveEntry entry, string destDirectory)
9689
{

0 commit comments

Comments
 (0)