Пример #1
0
        public void GetAllAsyncTest()
        {
            string keyName = ".NET";

            var allKey = new SearchKeywordsDto(_dbContext).GetAll();
            var key    = allKey.FirstOrDefault(c => c.KeyWord == keyName);

            Console.WriteLine(key?.KeyWord);
            Assert.IsNotNull(key);
        }
Пример #2
0
        public void CompleteRequestTest()
        {
            var searchKeywords = new SearchKeywordsDto(_dbContext).GetAll();

            new Service1().CompleteRequest();

            var result = new SearchResultDTO(_dbContext).GetAll();

            Console.WriteLine($"keywords {searchKeywords.Count} / result {result.Count}");
            Assert.AreEqual(searchKeywords.Count, result.Count);
        }
Пример #3
0
        public void RequestTest()
        {
            var searchKeywords = new SearchKeywordsDto(_dbContext).GetAll();

            new TimerRequest(_provider, _dbContext).Request();

            var result = new SearchResultDTO(_dbContext).GetAll();

            Console.WriteLine($"keywords {searchKeywords.Count} / result {result.Count}");
            Assert.AreEqual(searchKeywords.Count, result.Count);
        }
Пример #4
0
        public bool Request()
        {
            try
            {
                Writer.WriteTextInFile("Start request");

                var searchKeywords = new SearchKeywordsDto(_dbContext).GetAll();
                SearchKeywords.AddRange(searchKeywords);

                var saveResuly = new SearchResultDTO(_dbContext);

                foreach (var keyword in SearchKeywords.ToList())
                {
                    Index++;

                    while (SearchKeywords.Contains(keyword))
                    {
                        try
                        {
                            TimeExecutionRequests.Start();

                            var result = _provider.NumberOfVacancies(keyword);
                            saveResuly.SaveResult(result);
                            SearchKeywords.Remove(keyword); //удаление из списка елемента по которому был успешный ответ и он записан в базу

                            TimeExecutionRequests.Stop();
                        }
                        catch (Exception e)
                        {
                            new ErrorLogger(_dbContext).SaveException(e, keyword.Id);

                            Writer.WriteTextInFile($"Error {e.Message}\n inerMesage {e.InnerException?.Message}\n {e.StackTrace}");
                            Thread.Sleep(TimeSpan.FromMinutes(1));
                        }
                    }
                }

                Writer.WriteTextInFile($"Выполненно {Index} запроса");

                return(true);
            }
            catch (Exception exception)
            {
                new ErrorLogger(_dbContext).SaveException(exception);
                Writer.WriteTextInFile($"{exception.Message}\n {exception.InnerException}\n {exception.StackTrace}");
            }

            TimeExecutionRequests.Stop();
            return(false);
        }