Пример #1
0
        public async void Parse(WhoisParameters parametr)
        {
            _result  = new ConcurrentQueue <string>();
            _domains = new ConcurrentQueue <string>(_csvReaderWriter.ReadFile(parametr.FilePath));
            List <Task> tasks = new List <Task>();

            _pauseToken  = true;
            _cancelToken = true;
            _saver       = true;
            SetParams(parametr);
            StartParsing?.Invoke(_domains.Count, _streamsCount, _timeout);
            _result.Enqueue("Url" + _parser.BuildHeader());
            for (int i = 0; i < _streamsCount; i++)
            {
                tasks.Add(startTask());
            }
            await Task.WhenAll(tasks);

            if (_saver)
            {
                if (_csvReaderWriter.Write(_savefilepath, new TextFromListGetter(_result.ToList())))
                {
                    MessageBox.Show("Done");
                }
            }
            ParsingEnd?.Invoke();
            foreach (var item in tasks)
            {
                item.Dispose();
            }
        }
Пример #2
0
 private void SetParams(WhoisParameters parametr)
 {
     _timeout             = parametr.TimeOut;
     _streamsCount        = parametr.ThreadCount;
     _parser.CreationData = parametr.CreationDate;
     _parser.ExpiryData   = parametr.ExpiryDate;
     _parser.DomainAge    = parametr.DomainAge;
     _parser.ServerName1  = parametr.ServerName1;
     _parser.ServerName2  = parametr.ServerName2;
 }