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, "&nbsp;");
                    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);
        }
Beispiel #2
0
        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);
        }