public void StartSession(string __CrawlID, indexPerformanceEntry __indexID, string __SessionID, ICrawlJobContext __state)
        {
            CrawlID   = __CrawlID;
            SessionID = __SessionID;
            state     = __state;

            var tmpFolder = new folderNode("reportOutput", "reporting module", "");

            sessionReportFolder = tmpFolder.createDirectory(SessionID, "", imbWEMManager.settings.directReportEngine.doAutoRenameSessionFolder); //  Directory.CreateDirectory(path);

            TestID = CrawlID + "-" + SessionID;

            ReportPath = sessionReportFolder.path;

            sessionCrawlerFolder = sessionReportFolder.createDirectory(__CrawlID, "Report folder for Crawl [" + __CrawlID + "] - part of session: " + SessionID);



            indexSubFolder = imbWEMManager.index.folder;        //.createDirectory(__indexID.IndexRepository, "Index folder fo sub index", false);

            TFIDF_ConstructFolder = imbWEMManager.index.folder; //.createDirectory(SessionID, "TFIDF cache files for this session", false);

            FileInfo master_file = GetTFIDF_Master_File();

            if (globalTFIDFCompiled == null)
            {
                globalTFIDFCompiled = new weightTableCompiled(master_file.FullName, true, SessionID);
                globalTFIDFCompiled.ReadOnlyMode = true;
            }

            SampleRandomOrder = imbWEMManager.settings.crawlerJobEngine.doRandomizeSampleOrder;
            //SampleSource = state.sampleTags.add(state.sampleFile, ";");

            SampleListHash = randomizeSample();
        }
        public experimentSessionEntry StartSession(string CrawlID, indexPerformanceEntry indexID, ICrawlJobContext state =null)
        {
            var experiment = GetOrCreate(GetRecordID(CrawlID));
            experiment.StartSession(CrawlID, indexID, SessionID,state);

            CurrentSession = experiment;
            UpdateRecord(experiment);
            return experiment;
        }