Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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
                    } });
 }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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)));
        }
Ejemplo n.º 6
0
        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);
                }
            }
        }