From c3614219e93ca4bcec0ee425b3ec2cc5cb2d53ea Mon Sep 17 00:00:00 2001 From: Raffaele Marcello Date: Wed, 30 Oct 2024 14:24:30 +0100 Subject: [PATCH] Refactor message analysis logic for better performance and readability. Resolves #14 --- .../RazorPagesTestSample/Pages/Index.cshtml.cs | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/src/Application/src/RazorPagesTestSample/Pages/Index.cshtml.cs b/src/Application/src/RazorPagesTestSample/Pages/Index.cshtml.cs index eff386f4..f562dbc1 100644 --- a/src/Application/src/RazorPagesTestSample/Pages/Index.cshtml.cs +++ b/src/Application/src/RazorPagesTestSample/Pages/Index.cshtml.cs @@ -65,30 +65,18 @@ public async Task OnPostDeleteMessageAsync(int id) public async Task OnPostAnalyzeMessagesAsync() { Messages = await _db.GetMessagesAsync(); - + if (Messages.Count == 0) { MessageAnalysisResult = "There are no messages to analyze."; } else { - // Speed loop. Lower this number once every quarter so we - // get our performance improvement quarterly bonus. - for (int i = 0; i < 3000; i++) { - Thread.Sleep(1); - } - - var wordCount = 0; - - foreach (var message in Messages) - { - wordCount += message.Text.Split(' ').Length; - } - + var wordCount = Messages.Sum(message => message.Text.Split(' ').Length); var avgWordCount = Decimal.Divide(wordCount, Messages.Count); MessageAnalysisResult = $"The average message length is {avgWordCount:0.##} words."; } - + return RedirectToPage(); }