Exemple #1
0
        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);
                }
            }
        }
Exemple #2
0
        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
             * }
             */
        }
Exemple #3
0
        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();
            }
        }
Exemple #4
0
 public TestDatabase()
 {
     db = new DbMongo("testDb");
 }