public void Generate(ChatHistory content, DirectoryInfo outputDir) { CreateOutPutDirIfMissing(outputDir); LoadTemplates(); outputTopDirectory = outputDir; var selfId = content.FindSelfParticapantId(); foreach (var conv in content.conversations) { var otherParticipants = conv.FindOtherParticapants(selfId); var selfName = conv.FindSelfName(selfId); var otherParticipantNamesAndIds = conv.FindOtherParticapantNameAndIds(otherParticipants); var subDirNameForConv = GetDirectoryName(otherParticipantNamesAndIds, conv.conversation.conversation_id.id); var convDir = Directory.CreateDirectory($"{outputTopDirectory.FullName}{Path.DirectorySeparatorChar}{subDirNameForConv}"); Log.Information($"Created subdirectory: {subDirNameForConv}"); GenerateConversationHTML(convDir, conv, otherParticipants, otherParticipantNamesAndIds, selfId, selfName); CloseOutAllHtmlFiles(convDir); } }