private static void MapTo(this IHaveIntegrationEntity entity, JobAdIntegration integration) { integration.IntegratorUserId = entity.integratorUserId; integration.IntegratorReferenceId = entity.integratorReferenceId; integration.ExternalReferenceId = entity.externalReferenceId; integration.ExternalApplyUrl = entity.externalApplyUrl; ((IHaveApplicationRequirementsEntity)entity).MapTo(integration); }
public static void MapTo(this IHaveApplicationRequirementsEntity entity, JobAdIntegration integration) { integration.ApplicationRequirements = null; if (entity == null || string.IsNullOrEmpty(entity.jobg8ApplyForm)) { return; } var serializer = new XmlSerializer(typeof(ApplicationForm)); var form = (ApplicationForm)serializer.Deserialize(new StringReader(entity.jobg8ApplyForm)); // The form contains the response url in this case so set it now. integration.ExternalApplyApiUrl = form.ResponseURI; integration.JobBoardId = form.JobBoardID.ToString(); integration.ApplicationRequirements = new ApplicationRequirements { IncludeResume = false, IncludeCoverLetter = false, Questions = null, }; // Questions. if (form.Questions != null && form.Questions.Length > 0) { if (form.Questions.Select(q => q.ID).Contains("CV")) { integration.ApplicationRequirements.IncludeResume = true; } if (form.Questions.Select(q => q.ID).Contains("CoverLetter")) { integration.ApplicationRequirements.IncludeCoverLetter = true; } var specificQuestions = form.Questions.Where(q => !KnownQuestionIDs.Contains(q.ID)); if (specificQuestions.Count() > 0) { integration.ApplicationRequirements.Questions = (from q in specificQuestions select q.Map()).ToList(); } } }