public static void Clusters() { // SqlDb sqlDB = new SqlDb(@"c:\Data\rectangle.sdf"); // TODО: Переделать DbMongo sqlDB = new DbMongo(@"c:\Data\SingleFile.sdf"); List <string> jsonOfLines = sqlDB.GetObjectJsonByClassName("AcDbLine"); List <Rectangle> rectangles = new List <Rectangle>(); int i = 0; foreach (string jsonLine in jsonOfLines) { crawlAcDbLine cLine = jsonHelper.From <crawlAcDbLine>(jsonLine); if (cLine.Length > 0) { Rectangle rec = new Rectangle(cLine.StartPoint, cLine.EndPoint); rectangles.Add(rec); DrawLine(cLine.StartPoint.X, cLine.StartPoint.Y, cLine.EndPoint.X, cLine.EndPoint.Y); } i++; } ClusterTree ct = new ClusterTree(rectangles.ToArray()); foreach (ClusterTree.Cluster cluster in ct.Clusters) { if (cluster.Count > 2) { DrawRectangle(cluster.BoundBox.MinPoint.X, cluster.BoundBox.MinPoint.Y, cluster.BoundBox.MaxPoint.X, cluster.BoundBox.MaxPoint.Y); } } }
static void Scan(string dir, string dbName) { //Открыть папку, выбрать все файлы двг из нее string dataDir = @"c:\Data\"; string[] dwgFiles = Directory.GetFiles(dir, "*.dwg", SearchOption.AllDirectories); DbMongo db = new DbMongo(dbName); foreach (string dwgFile in dwgFiles) { CrawlDocument cDoc = new CrawlDocument(dwgFile); FileCopy(dwgFile, Path.Combine(dataDir, cDoc.FileId + ".dwg")); db.InsertIntoFiles(cDoc); } /* * //Запуситить процессы по числу ядер процессоров каждый на своем ядре * int numCores = 4; * for (int i = 0; i < numCores; i++) * { * //crawlinNano(); * //http://cplus.about.com/od/learnc/a/multi-threading-using-task-parallel-library.htm * Task.Factory.StartNew(() => crawlinNano()); * //Процесс выбирает из базы случайным образом непросканированный файл и сканирует его в Json * //Это пока выполняется вручным запуском нанокадов * //Если файл изменился, то записывается его новый hash * } */ }
public static void Crawl(bool closeAfterComplete = true) { DbMongo sqlDB = new DbMongo("SingleFile"); //While Get random dwg from database that not scanned CrawlDocument crawlDoc = sqlDB.GetNewRandomUnscannedDocument(); while (crawlDoc != null) { crawlAcDbDocument cDoc = new crawlAcDbDocument(crawlDoc); cDoc.sqlDB = sqlDB; cDoc.ScanDocument(); crawlDoc = sqlDB.GetNewRandomUnscannedDocument(); } if (closeAfterComplete) { HostMgd.ApplicationServices.Application.Quit(); } }
public TestDatabase() { db = new DbMongo("testDb"); }