private JobDetailsModel GetJobDetailsModel(Guid?memberId, JobDetailsMemberModel memberModel, int?externalReferralSourceId) { var model = GetModel <JobDetailsModel>(memberId); model.Member = memberModel; // Referral. model.ExternalReferralSourceId = externalReferralSourceId; model.SendSuggestedJobs = Pageflow.SendSuggestedJobs == null ? Defaults.SendSuggestedJobs : Pageflow.SendSuggestedJobs.Value; // Referance. var country = ActivityContext.Location.Country; model.Reference = new JobDetailsReferenceModel { Countries = _locationQuery.GetCountries(), CurrentCountry = country, CountrySubdivisions = (from s in _locationQuery.GetCountrySubdivisions(country) where !s.IsCountry select s).ToList(), Regions = _locationQuery.GetRegions(country), Industries = _industriesQuery.GetIndustries(), Months = Months, Years = Years, ExternalReferralSources = _referralsQuery.GetExternalReferralSources(), }; return(model); }
private static IList <Job> GetJobs(JobDetailsMemberModel memberModel) { if (string.IsNullOrEmpty(memberModel.JobTitle) && string.IsNullOrEmpty(memberModel.JobCompany)) { return(null); } return(new[] { new Job { Title = memberModel.JobTitle, Company = memberModel.JobCompany } }); }
private void UpdateMemberModel(JobDetailsMemberModel memberModel, Guid?parsedResumeId) { if (parsedResumeId == null) { return; } var parsedResume = _resumesQuery.GetParsedResume(parsedResumeId.Value); if (parsedResume == null) { return; } // Update those bits that are not already set. if (memberModel.DateOfBirth == null) { memberModel.DateOfBirth = parsedResume.DateOfBirth; } }
private static void Validate(JobDetailsMemberModel memberModel) { memberModel.Prepare(); var errors = memberModel.GetValidationErrors().ToList(); // Gender and date of birth are required. if (memberModel.Gender == Gender.Unspecified) { errors.Add(new RequiredValidationError("Gender")); } if (memberModel.DateOfBirth == null) { errors.Add(new RequiredValidationError("DateOfBirth")); } if (errors.Any()) { throw new ValidationErrorsException(errors); } }
public ActionResult JobDetails(JobDetailsMemberModel memberModel, bool sendSuggestedJobs, int?externalReferralSourceId) { var memberId = User.Id().Value; try { // Make sure everything has been supplied appropriately. Validate(memberModel); // Update the member. var member = _membersQuery.GetMember(memberId); var candidate = _candidatesQuery.GetCandidate(member.Id); UpdateMember(member, candidate, memberModel); UpdateSuggestedJobs(member.Id, sendSuggestedJobs); UpdateReferral(memberId, externalReferralSourceId); // Send out a verification email if needed. if (member.EmailAddresses.Count > 1) { _accountVerificationsCommand.SendVerification(member, member.GetSecondaryEmailAddress().Address); } // Member exists and has been updated so move on. return(Next()); } catch (UserException ex) { ModelState.AddModelError(ex, new JoinErrorHandler()); } return(View(GetJobDetailsModel(memberId, memberModel, externalReferralSourceId))); }
private void UpdateMember(Member member, Candidate candidate, JobDetailsMemberModel memberModel) { var resume = candidate.ResumeId == null ? null : _resumesQuery.GetResume(candidate.ResumeId.Value); // Update the member. member.EthnicStatus = memberModel.EthnicStatus; member.Gender = memberModel.Gender; member.DateOfBirth = memberModel.DateOfBirth; if (!string.IsNullOrEmpty(memberModel.SecondaryEmailAddress)) { member.UpdateSecondaryEmailAddress(new EmailAddress { Address = memberModel.SecondaryEmailAddress }); } if (!string.IsNullOrEmpty(memberModel.SecondaryPhoneNumber)) { member.UpdateSecondaryPhoneNumber(new PhoneNumber { Number = memberModel.SecondaryPhoneNumber, Type = memberModel.SecondaryPhoneNumberType }); } _memberAccountsCommand.UpdateMember(member); // Update the candidate. candidate.Industries = memberModel.IndustryIds == null ? null : _industriesQuery.GetIndustries(memberModel.IndustryIds); candidate.RecentProfession = memberModel.RecentProfession; candidate.RecentSeniority = memberModel.RecentSeniority; candidate.HighestEducationLevel = memberModel.HighestEducationLevel; candidate.DesiredJobTitle = memberModel.DesiredJobTitle; candidate.DesiredJobTypes = memberModel.DesiredJobTypes; candidate.VisaStatus = memberModel.VisaStatus; candidate.RelocationPreference = memberModel.RelocationPreference; candidate.RelocationLocations = GetRelocationLocations(memberModel.RelocationCountryIds, memberModel.RelocationCountryLocationIds); _candidatesCommand.UpdateCandidate(candidate); // Update the resume. if (resume != null) { // Set it. resume.Citizenship = memberModel.Citizenship; if (Pageflow.ParsedResumeId == null) { resume.Jobs = GetJobs(memberModel); } _candidateResumesCommand.UpdateResume(candidate, resume); } else { // Create it. resume = new Resume { Citizenship = memberModel.Citizenship }; if (Pageflow.ParsedResumeId == null) { resume.Jobs = GetJobs(memberModel); } if (!resume.IsEmpty) { _candidateResumesCommand.CreateResume(candidate, resume); } } }