private List <UngVien> XuLyCV(XBrowser browser, JobLink job) { job.trang_thai_xu_ly = TrangThaiXuLy.DA_XU_LY; List <UngVien> lst_ung_vien = new List <UngVien>(); try { var eles_ung_vien = browser.Find("//div[@class='col-sm-9']//form//div[@class='list-group-item-heading']"); if (eles_ung_vien.Count > 0) { Dictionary <string, string> dic_cv_ung_vien = new Dictionary <string, string>(); foreach (var item_ung_vien in eles_ung_vien) { try { var ho_ten_ele = browser.FindChildElement(item_ung_vien, ".//span[@class='text-accent']"); var link_cv_ele = browser.FindChildElement(item_ung_vien, ".//a"); if (ho_ten_ele != null && link_cv_ele != null) { string href = browser.GetAttribute(link_cv_ele, "href").Trim(); string ho_ten = browser.GetAttribute(ho_ten_ele, "innerText").Trim(); if (!dic_cv_ung_vien.ContainsKey(href)) { dic_cv_ung_vien.Add(href, ho_ten); } } } catch (Exception) { } } foreach (var item in dic_cv_ung_vien) { browser.GoTo(item.Key); UngVien ung_vien = new UngVien(); ung_vien.ngay_tao = ung_vien.ngay_sua = XMedia.XUtil.TimeInEpoch(); ung_vien.app_id = job.app_id; ung_vien.job_link = job.link; ung_vien.ho_ten = item.Value; ung_vien.full_text = browser.GetPageSource(); ung_vien.vi_tri = job.ten_job; ThongTinChungUngVien ttuv = new ThongTinChungUngVien(); ttuv.domain = UrlToDomain(item.Key); ttuv.full_text = browser.GetInnerHtml("//div[@class='resume-show']//div[@class='media']", 200); ttuv.full_text += browser.GetInnerHtml("//div[@id='divResumeContactInformation']", 200); ung_vien.thong_tin_chung = ttuv; //Bóc tách XPATH để lấy được thông tin này nếu có ung_vien.kinh_nghiem = browser.GetInnerHtml("//h4[contains(text(),'Kinh nghiệm')]/following-sibling::dl", 200); ung_vien.ky_nang = ""; ung_vien.hoc_van = browser.GetInnerHtml("//h4[contains(text(),'Học vấn')]/following-sibling::dl", 200); ung_vien.email = browser.GetInnerHtml("//a[contains(@href,'mailto')]", 200); ung_vien.so_dien_thoai = browser.GetInnerHtml("//div[@id='divResumeContactInformation']//dt[contains(text(),'Điện')]/following-sibling::dd[1]", 200); string ngay_sinh = browser.GetInnerText("//span[@class='confidential-birth-day']", 500); ung_vien.domain = UrlToDomain(item.Key); ung_vien.custom_id = item.Key.Substring(item.Key.LastIndexOf("/") + 1); ung_vien.nguoi_tao = job.nguoi_tao; if (!string.IsNullOrEmpty(ngay_sinh)) { //Convert ngay sinh System.Globalization.DateTimeFormatInfo dtfi = new System.Globalization.DateTimeFormatInfo(); dtfi.ShortDatePattern = "dd/MM/yyyy"; dtfi.DateSeparator = "/"; try { var bird_day = Convert.ToDateTime(ngay_sinh, dtfi); ung_vien.ngay_sinh = XMedia.XUtil.TimeInEpoch(bird_day); } catch (Exception) { } } var ifr = browser.FindFirst("//iframe"); if (ifr != null) { ung_vien.link_cv_offline = browser.DownloadByBrowserInIFrame("//iframe", "//button[@id='download']"); if (!string.IsNullOrEmpty(ung_vien.link_cv_offline)) { ung_vien.cv_byte = File.ReadAllBytes($"{cv_save_path}\\{ung_vien.link_cv_offline}"); } } lst_ung_vien.Add(ung_vien); } } else { job.thong_tin_xu_ly = Common.KHONG_TIM_THAY_UNG_VIEN; } } catch (Exception ex) { job.trang_thai_xu_ly = TrangThaiXuLy.LOI; job.thong_tin_xu_ly = ex.Message; } job.ngay_xu_ly = XMedia.XUtil.TimeInEpoch(); return(lst_ung_vien); }