public static List <ResumeCertificate> DeserializeCert(HtmlDocument document) { var node = document.DocumentNode.SelectSingleNode("//h3[text()='证书']"); var certNodes = node?.ParentNode.SelectNodes("./h2"); if (certNodes != null && certNodes.Count > 0) { var resumeCerts = new List <ResumeCertificate>(); foreach (var cert in certNodes) { var certArr = Regex.Split(cert.InnerText, " "); if (certArr.Length > 1) { try { var resumeCert = new ResumeCertificate { Time = Convert.ToDateTime(certArr[0]), CertName = certArr.Last() }; resumeCerts.Add(resumeCert); } catch { } } } return(resumeCerts); } return(null); }
public static SourceResume ConvertTo_Dtl_V5(string content) { var dto = new SourceResume(); var source = JsonConvert.DeserializeObject <dynamic>(content); dto.Id = source.resumeNo; var Dtl = JsonConvert.DeserializeObject <dynamic>(source.detialJSonStr.ToString()); if (source.userDetials != null) { dto.Name = source.userDetials.userName; dto.Gender = source.userDetials.gender; dto.MaritalStatus = source.userDetials.maritalStatus; dto.Cellphone = source.userDetials.mobilePhone; dto.Email = source.userDetials.email; dto.Birthday = source.userDetials.birthStr; dto.CurrentResidence = source.userDetials.cityId; dto.RegisteredResidenc = source.userDetials.hUKOUCityId; } else { dto.Name = Dtl.UserMasterName; dto.Gender = Dtl.Gender; dto.MaritalStatus = Dtl.MaritalStatus; dto.Birthday = Dtl.BirthYear; } dto.ResumeId = Dtl.ResumeId; dto.ResumeName = Dtl.Name; dto.UserMasterId = Dtl.UserMasterId; dto.UserMasterExtId = Dtl.UserMasterExtId; dto.ResumeNumber = Dtl.ResumeNumber; dto.WorkStarts = Dtl.WorkYearsRangeId; dto.Degree = Dtl.CurrentEducationLevel; dto.JobStatus = Dtl.DesiredPosition[0].CurrentCareerStatus; dto.Intention = new ResumeIntention(); if (Dtl.DesiredPosition != null && Dtl.DesiredPosition.Count > 0) { dto.Intention.JobType = Dtl.DesiredPosition[0].DesiredEmploymentType; dto.Intention.Salary = Dtl.DesiredPosition[0].DesiredSalaryScope; dto.Intention.Industry = Dtl.DesiredPosition[0].DesiredIndustry; dto.Intention.Function = Dtl.DesiredPosition[0].DesiredJobType; dto.Intention.Location = Dtl.DesiredPosition[0].DesiredCity; } else { dto.Intention.JobType = "默认"; dto.Intention.Salary = "面议"; dto.Intention.Industry = "默认"; dto.Intention.Function = "中国"; dto.Intention.Location = "中国"; } if (Dtl.SelfEvaluate != null && Dtl.SelfEvaluate.Count > 0) { dto.Intention.Evaluation = Dtl.SelfEvaluate[0]?.CommentContent; } else { dto.Intention.Evaluation = ""; } #region 工作经验 if (Dtl.WorkExperience != null && Dtl.WorkExperience.Count > 0) { dto.Works = new List <ResumeWork>(); foreach (var o in Dtl.WorkExperience) { var work = new ResumeWork(); work.Begin = o.DateStart; work.End = o.DateEnd; work.Company = o.CompanyName; work.Industry = o.CompanyIndustry; work.Size = o.CompanySize; work.Nature = o.CompanyProperty; work.Department = o.ResideDepartment; work.Position = o.JobTitle; work.Description = o.WorkDescription; dto.Works.Add(work); } } #endregion #region 项目经验 if (Dtl.ProjectExperience != null && Dtl.ProjectExperience.Count > 0) { dto.Projects = new List <ResumeProject>(); foreach (var o in Dtl.ProjectExperience) { var project = new ResumeProject(); project.Begin = o.DateStart; project.End = o.DateEnd; project.Company = ""; project.Name = o.ProjectName; project.Description = o.ProjectDescription; project.Duty = o.ProjectResponsibility; dto.Projects.Add(project); } } #endregion #region 教育经历 if (Dtl.EducationExperience != null && Dtl.EducationExperience.Count > 0) { dto.Educations = new List <ResumeEducation>(); foreach (var o in Dtl.EducationExperience) { var edu = new ResumeEducation(); edu.Begin = o.DateStart; edu.End = o.DateEnd; edu.School = o.SchoolName; edu.Degree = o.EducationLevel; edu.Description = ""; edu.Major = o.MajorName; dto.Educations.Add(edu); } } #endregion #region 培训经历 if (Dtl.Training != null && Dtl.Training.Count > 0) { dto.Trainings = new List <ResumeTraining>(); foreach (var o in Dtl.Training) { var train = new ResumeTraining(); train.Begin = o.DateStart; train.End = o.DateEnd; train.Course = o.Course; train.Institution = o.Institution; train.Description = o.TrainingDescription; train.Location = o.Location; dto.Trainings.Add(train); } } #endregion #region 技能/语言 if (Dtl.ProfessionnalSkill != null && Dtl.ProfessionnalSkill.Count > 0) { dto.Skills = new List <ResumeSkill>(); foreach (var o in Dtl.ProfessionnalSkill) { var skill = new ResumeSkill { Name = o.SkillName, Level = o.MasterDegree.ToString() + "|" + o.UsedMonths.ToString() + "个月", Description = "" }; dto.Skills.Add(skill); } } if (Dtl.LanguageSkill != null && Dtl.LanguageSkill.Count > 0) { if (dto.Skills == null) { dto.Skills = new List <ResumeSkill>(); } foreach (var o in Dtl.LanguageSkill) { var skill = new ResumeSkill { Name = o.LanguageName, Level = "听说" + o.HearSpeakSkill.ToString() + "|读写" + o.ReadWriteSkill.ToString(), Description = "" }; dto.Skills.Add(skill); } } #endregion #region 证书 if (Dtl.AchieveCertificate != null && Dtl.AchieveCertificate.Count > 0) { dto.Certificates = new List <ResumeCertificate>(); foreach (var o in Dtl.AchieveCertificate) { try { var cert = new ResumeCertificate { Time = Convert.ToDateTime(o.AchieveDate), CertName = o.CertificateName, Description = o.CertificateDescription }; dto.Certificates.Add(cert); } catch { // ignored } } } #endregion #region 校内荣誉 if (Dtl.AchieveAward != null && Dtl.AchieveAward.Count > 0) { dto.Honors = new List <SchoolHonor>(); foreach (var o in Dtl.AchieveAward) { try { var cert = new SchoolHonor { Time = o.AchieveDate, Honor = o.AwardName, Description = o.Description }; dto.Honors.Add(cert); } catch { // ignored } } } #endregion #region 校内实践 if (Dtl.PracticeExperience != null && Dtl.PracticeExperience.Count > 0) { dto.Practices = new List <SchoolPractice>(); foreach (var o in Dtl.PracticeExperience) { try { var cert = new SchoolPractice { Name = o.PracticeName, Begin = o.DateStart, End = o.DateEnd, Description = o.PracticeDescription }; dto.Practices.Add(cert); } catch { // ignored } } } #endregion #region 其他 if (Dtl.Other != null && Dtl.Other.Count > 0) { dto.Others = new List <OtherInfo>(); foreach (var o in Dtl.Other) { try { var cert = new OtherInfo { Title = o.Name, Description = o.Description }; dto.Others.Add(cert); } catch { // ignored } } } #endregion return(dto); }