Skip to content

Commit 838e124

Browse files
committed
Refactor cognitive config check in stats loading
Move cognitive config validity check outside the per-date loop when loading message cognitive stats for a channel. This avoids redundant checks, logs a warning and adds basic stats if the config is invalid, and improves code clarity and efficiency.
1 parent 6dd892b commit 838e124

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

src/AnalyticsEngine/WebJob.Office365ActivityImporter.Engine/Graph/Teams/Extensions/TeamChannelExtensions.cs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -85,25 +85,30 @@ internal static async Task<List<MessageCognitiveStats>> GetCognitiveDataStats(th
8585
// Ensure all msgs have stats for them
8686
var cognitiveConfig = new AppConfig();
8787

88+
// Save msg stats for channel, including previous days too
89+
var msgDates = allChannelMsgs.ToList().GetUniqueDates();
90+
91+
if (!cognitiveConfig.IsValidCognitiveConfig)
92+
{
93+
telemetry.LogWarning($"Cognitive config not valid. Cannot load cognitive stats for channel {parentChannel.DisplayName} ({parentChannel.Id}). Adding basic stats with no cognitive insights.");
94+
// No cognitive available. Add basic stats for all dates
95+
foreach (var uniqueMsgDate in msgDates)
96+
{
97+
var msgsForDate = allChannelMsgs.GetByDate(uniqueMsgDate);
98+
allStatsAllDays.Add(new MessageCognitiveStats(parentChannel, uniqueMsgDate) { ChatsCount = msgsForDate.Count });
99+
}
100+
return allStatsAllDays;
101+
}
102+
88103
var credentials = new AzureKeyCredential(cognitiveConfig.CognitiveKey);
89104
var client = new TextAnalyticsClient(new Uri(cognitiveConfig.CognitiveEndpoint), credentials);
90105

91-
// Save msg stats for channel, including previous days too
92-
var msgDates = allChannelMsgs.ToList().GetUniqueDates();
93106
foreach (var uniqueMsgDate in msgDates)
94107
{
95108
// No log - generate new stats
96109
var msgsForDate = allChannelMsgs.GetByDate(uniqueMsgDate);
97-
if (cognitiveConfig.IsValidCognitiveConfig)
98-
{
99-
var dateStats = await msgsForDate.LoadSameDayCognitiveDataStats(client, telemetry, parentChannel);
100-
allStatsAllDays.Add(dateStats);
101-
}
102-
else
103-
{
104-
// No cognitive available. Add basic stats
105-
allStatsAllDays.Add(new MessageCognitiveStats(parentChannel, uniqueMsgDate) { ChatsCount = msgsForDate.Count });
106-
}
110+
var dateStats = await msgsForDate.LoadSameDayCognitiveDataStats(client, telemetry, parentChannel);
111+
allStatsAllDays.Add(dateStats);
107112
}
108113

109114
return allStatsAllDays;

0 commit comments

Comments
 (0)