Example #1
0
        private static void ProcessCsvRealTime(
            string fileName,
            string queryFile,
            string consoleLogOption,
            string outputFileName,
            string blobConnectionString,
            string blobContainerName,
            KustoConnectionStringBuilder kscbAdmin,
            KustoConnectionStringBuilder kscbIngest,
            bool directIngest,
            string tableName,
            bool resetTable)
        {
            BlockingKustoUploader ku            = null;
            FileOutput            fileOutput    = null;
            ConsoleOutput         consoleOutput = null;

            // initiating simple csv reader
            SimpleCsvParser simpleCsvParser = new SimpleCsvParser(fileName);

            // initiating output
            if (kscbAdmin != null)
            {
                // output to kusto
                ku = CreateUploader(UploadTimespan, blobConnectionString, blobContainerName, kscbAdmin, kscbIngest, directIngest, tableName, resetTable);
                Task task = Task.Factory.StartNew(() =>
                {
                    RunUploader(ku, simpleCsvParser, queryFile);
                });
            }
            else if (!string.IsNullOrEmpty(outputFileName))
            {
                // output to file
                fileOutput = new FileOutput(outputFileName);
                RunFileOutput(fileOutput, simpleCsvParser, queryFile);
            }
            else
            {
                // output to console
                bool tableFormat = consoleLogOption == "table" ? true : false;
                consoleOutput = new ConsoleOutput(tableFormat);
                RunConsoleOutput(consoleOutput, simpleCsvParser, queryFile);
            }

            // starting simple csv reader
            simpleCsvParser.Start();

            string readline = Console.ReadLine();

            // clean up
            simpleCsvParser.Stop();
            if (kscbAdmin != null)
            {
                ku.OnCompleted();
            }
            else if (!string.IsNullOrEmpty(outputFileName))
            {
                fileOutput.OnCompleted();
            }
            else
            {
                consoleOutput.OnCompleted();
            }
        }