/// <summary> /// get the SessionAnalytics to transfer /// back to UX module to display the analytics /// </summary> /// <params> Array of ChatContext objects which contains information about messages of each thread </params> /// <returns> /// Returns SessionAnalytics object which contains analytics of session /// </returns> public SessionAnalytics GetTelemetryAnalytics(ChatContext[] all_messages) { SessionAnalytics sessionAnalyticsToSend = new SessionAnalytics(); sessionAnalyticsToSend.chatCountForEachUser = userIdChatCountDic; sessionAnalyticsToSend.userCountAtAnyTime = userCountAtEachTimeStamp; sessionAnalyticsToSend.insincereMembers = insincereMembers; return(sessionAnalyticsToSend); }
public SessionAnalytics GetSessionAnalytics(string ownerName, string name, DateTime startDate, DateTime endDate) { var command = CreateCommand(AnalyticsCommand, $"sessions --app \"{ownerName}/{name}\" -s \"{endDate.ToShortDateString()}\" -e \"{startDate.ToShortDateString()}\""); var result = BashHelper.ExecuteBashCommand(command); string[] lines = Regex.Split(result.Output, "\n"); return(SessionAnalytics.ParseFromString(lines)); }
/// <summary> /// Used to simplify the ChatContext and saved all analytics when the session is over. /// </summary> /// <params name="allMessages"> Array of ChatContext objects which contains information about messages of each thread </params> public void SaveAnalytics(ChatContext[] allMessages) { // save the session data GetUserVsChatCount(allMessages); SessionAnalytics sessionAnalyticsToSave = new SessionAnalytics(); sessionAnalyticsToSave.chatCountForEachUser = userIdChatCountDic; sessionAnalyticsToSave.userCountAtAnyTime = userCountAtEachTimeStamp; sessionAnalyticsToSave.insincereMembers = insincereMembers; Save(sessionAnalyticsToSave); // saving server data int totalChats = 0; int totalUsers = 0; foreach (KeyValuePair <int, int> user_i in userIdChatCountDic) { totalChats += user_i.Value; totalUsers += 1; } UpdateServerData(totalUsers, totalChats); }