public void DBScanWorker(object sender, DoWorkEventArgs e)
        {
            StatusController.WorkerStatus(true);

            foreach (var filename in this.DataController.Files)
            {
                var inflectionPoint = KDisCurveCalculator
                                      .ReadInflectionPointList(this.EmbeddingModel.GetInflectionPointName(filename))
                                      .First();
                this.DBScanForFileWithInflectionPoint(filename, inflectionPoint);
            }

            StatusController.WorkerStatus(false);
        }
        private List <InflectionPoint> CalcInflectionPointForFile(string filename, bool save = true)
        {
            this.EmbeddingModel.ReadModel(this.EmbeddingModel.GetModelName(filename));

            var id = 0;
            var kDisCurveCalculator = new KDisCurveCalculator
            {
                Data = this.DataController.UseData <KeyFeature>(filename)
                       .Select(data => data.ToVectorPoint(this.EmbeddingModel, id++)).ToList()
            };

            kDisCurveCalculator.Calculate();

            if (save)
            {
                kDisCurveCalculator.SaveInflectionPointList(this.EmbeddingModel.GetInflectionPointName(filename));
                kDisCurveCalculator.SaveNearestNeighborList(@"E:\EventExtractionExam\Debug\kds.txt");
                //kDisCurveCalculator.GetKDisCurveFigure().SaveImage(@"E:\EventExtractionExam\Debug\figure.png", ImageFormat.Png);
            }

            return(kDisCurveCalculator.InflectionPointList);
        }