public async Task <Vacancie> GetFeedbackAsync(Vacancie vacancie) { IsStart = true; List <Summary> summaries = new List <Summary>(); await Task.Run(() => { var url = $"https://hh.ru/employer/vacancyresponses?vacancyId={vacancie.Link.Split('/')[2]}"; var baseHtml = RequestTo(url); if (baseHtml == null) { return; } int page = 0; //while(page != 1) while (true) { var buff = GetSummaries(url + "&page=" + page); if (buff.Count == 0) { break; } summaries.AddRange(buff); page++; } vacancie.Feedbacks = summaries; }); IsStart = false; vacancie.Feedbacks = summaries; return(vacancie); }
/// <summary> /// Получает отклики /// </summary> /// <param name="vacancie"></param> /// <returns></returns> public Vacancie GetFeedback(Vacancie vacancie) { Summaries = new ObservableCollection <Summary>(); var url = $"https://hh.ru/employer/vacancyresponses?vacancyId={vacancie.Link.Split('/')[2]}"; var baseHtml = RequestTo(url); if (baseHtml == null) { return(new Vacancie()); } List <Summary> summaries = new List <Summary>(); int page = 0; //while(page != 1) while (true) { var buff = GetSummaries(url + "&page=" + page); if (buff.Count == 0) { break; } summaries.AddRange(buff); page++; } vacancie.Feedbacks = summaries; return(vacancie); }
private async void WriteFeedbakButton_Click(object sender, RoutedEventArgs e) { if (parser.IsStart) { System.Windows.MessageBox.Show("Дождитесь остановки парсера!", "Предупреждение"); return; } var vacancy = VacancyListView.SelectedItem; if (vacancy == null) { System.Windows.MessageBox.Show("Выберите вакансию!", "Ошибка"); return; } pathCSV = OpenDialogSetPatch(); List <Summary> summaryList = new List <Summary>(); isLimit = false; ParseProgressBar.Value = 0; ParseProgressBar.Maximum = 500; summaryList.AddRange(summaries); parser.Summaries = new ObservableCollection <Summary>(); parser.Summaries.CollectionChanged += SummariesGetSearch_CollectionChanged; try { Vacancie buff = new Vacancie(); while (true) { buff = await((ParserAuthorized)parser).GetFeedbackAsync((Vacancie)vacancy); if (buff.Feedbacks.Count == 0) { break; } summaryList.AddRange(buff.Feedbacks); } } catch (Exception) { if (ManagerCSV.Write(summaryList, pathCSV)) { System.Windows.MessageBox.Show($"Данные выгруженны по пути : {pathCSV}", "Уведомление"); } else { System.Windows.MessageBox.Show($"Данные не выгруженны!", "Ошибка"); } return; } if (summaryList.Count != 0) { if (ManagerCSV.Write(summaryList, pathCSV)) { System.Windows.MessageBox.Show($"Данные выгруженны по пути : {pathCSV}", "Уведомление"); } else { System.Windows.MessageBox.Show($"Данные не выгруженны!", "Ошибка"); } } else { System.Windows.MessageBox.Show($"Данные не полученны! Походу вылезла капча, попробуйте перезайти в программу!", "Ошибка"); } }