public void Initialize(string[] cmdArgs) { Trace.Info("Initializing"); _cmdArgs = ParseCmdArgs(cmdArgs); OngoingConversationManager.Initialize(); MappingManager.Initialize(); var csvHeader = ConversationManager.GetCsvHeader(); FileManager.SaveToFile(new List <string>() { csvHeader }, _cmdArgs["target-csv"]); }
public static List <string> GetCsvConversations() { var result = new List <string>(); try { foreach (var conversation in Instance.conversations) { // <conversation> if (!conversation.IsFinished()) { Trace.Debug($"Skipping ongoing conversation: {conversation.conversationId}"); OngoingConversationManager.AddOngoingConversationIfDoesntExist(conversation.conversationId); continue; } var convItems = MappingManager.GetMappingItemSublist("conversations"); var convValues = GetValues(convItems, conversation); if (conversation.participants != null && conversation.participants.Any()) { foreach (var participant in conversation.participants) { // <participant> var partItems = MappingManager.GetMappingItemSublist("participants"); var partValues = GetValues(partItems, participant); if (participant.sessions != null && participant.sessions.Any()) { foreach (var session in participant.sessions) { // <session> var sessItems = MappingManager.GetMappingItemSublist("sessions"); var sessValues = GetValues(sessItems, session); if (session.segments != null && session.segments.Any()) { foreach (var segment in session.segments) { // <segment> var segItems = MappingManager.GetMappingItemSublist("segments"); var segValues = GetValues(segItems, segment); var csvLine = ConvertValuesToCsvLine(new List <Dictionary <string, string> >() { convValues, partValues, sessValues, segValues }); AddCsvLine(conversation.conversationId, csvLine, ref result); // </segment> } } else { var csvLine = ConvertValuesToCsvLine(new List <Dictionary <string, string> >() { convValues, partValues, sessValues }); AddCsvLine(conversation.conversationId, csvLine, ref result); } // </session> } } else { var csvLine = ConvertValuesToCsvLine(new List <Dictionary <string, string> >() { convValues, partValues }); AddCsvLine(conversation.conversationId, csvLine, ref result); } // </participant> } } else { var csvLine = ConvertValuesToCsvLine(new List <Dictionary <string, string> >() { convValues }); AddCsvLine(conversation.conversationId, csvLine, ref result); } // </conversation> } } catch (Exception ex) { Trace.Error("Error during transformation JSON to CSV", ex); } return(result); }
public List <string> OngoingConversationIdList() => OngoingConversationManager.GetOngoingConversationList();
private static void AddCsvLine(string conversationId, string csvLine, ref List <string> csvLineList) { OngoingConversationManager.RemoveOngoingConversationIfDoesExist(conversationId); csvLineList.Add(csvLine); }