コード例 #1
0
        static void UserInteraction()
        {
            bool validIDSupplied = false;
            int  targetID        = -1;

            do
            {
                Console.ForegroundColor = ConsoleColor.Black;
                Console.BackgroundColor = ConsoleColor.Yellow;
                Console.WriteLine("Please enter an ID, or press return to classify latest entry.");
                Console.ResetColor();

                string input = Console.ReadLine();
                if (input == "")
                {
                    break;
                }
                else
                {
                    if (int.TryParse(input, out targetID))
                    {
                        validIDSupplied = targetID < warehouse.GetRecords().Count() && targetID >= 0;
                    }
                    if (!validIDSupplied)
                    {
                        Console.ForegroundColor = ConsoleColor.Black;
                        Console.BackgroundColor = ConsoleColor.Red;
                        Console.WriteLine("Invalid ID supplied.");
                        Console.ResetColor();
                    }
                }
            }while (!validIDSupplied);

            Console.Clear();

            DataWarehouse translatedWarehouse = translator.TranslateWarehouse(warehouse);

            translator.SaveTranslatorToFile();

            DataRecord targetRecord = null;

            if (targetID > -1)
            {
                targetRecord = warehouse.GetRecord(targetID);
            }
            else
            {
                targetRecord = warehouse.GetLatestRecord();
            }

            List <string> classificationStrings = new List <string>();

            foreach (Classification c in cm.ThreadedClassify(targetRecord))
            {
                string s = c.ToString();
                classificationStrings.Add(s);
                Console.WriteLine(s);
                Console.WriteLine();
            }

            DataRecord             targetRecordTranslated = translator.TranslateRecord(targetRecord);
            ConcurrentBag <string> visualizationBag       = new ConcurrentBag <string>();

            if (Visualizers.Count > 0)
            {
                if (!Directory.Exists(VisualizerOutputDir + "\\" + translatedWarehouse.FileName + "\\" + targetRecord.ID))
                {
                    Directory.CreateDirectory(VisualizerOutputDir + "\\" + translatedWarehouse.FileName + "\\" + targetRecord.ID);
                }
                Parallel.ForEach(Visualizers, (v) =>
                {
                    string[] paths = v.Visualize(VisualizerOutputDir + "\\" + translatedWarehouse.FileName + "\\" + targetRecord.ID + "\\" + v.GetType().Name.ToString(),
                                                 translatedWarehouse,
                                                 targetRecordTranslated);

                    foreach (string path in paths)
                    {
                        visualizationBag.Add(path);
                    }
                });
            }

            ReportGenerator.GenerateReport(VisualizerOutputDir + "\\" + translatedWarehouse.FileName + "\\" + targetRecord.ID + "\\Report.html",
                                           targetRecord.ID,
                                           classificationStrings.ToArray(),
                                           visualizationBag.ToArray());

            Process.Start(VisualizerOutputDir + "\\" + translatedWarehouse.FileName + "\\" + targetRecord.ID + "\\Report.html");
        }
コード例 #2
0
 private static Dictionary <string, DataRecord> GetAverageClassValues(DataWarehouse WH, DataTranslator Trs)
 {
     WH = Trs.TranslateWarehouse(WH);
     return(GetAverageClassValues(WH));
 }