private ResourceListModel <TResource> GetResourceListModel <TResource>(IHasId <Guid> user, ResourceListModel <TResource> model) where TResource : Resource { if (user is Member) { var candidate = _candidatesQuery.GetCandidate(user.Id); var resume = candidate.ResumeId == null ? null : _resumesQuery.GetResume(candidate.ResumeId.Value); model.ResumePercentComplete = _memberStatusQuery.GetPercentComplete(CurrentMember, candidate, resume); model.HasResume = HasResume(candidate); } else { model.ResumePercentComplete = 0; model.HasResume = false; } model.TopRatedArticle = _resourcesQuery.GetTopRatedArticle(); model.TopViewedQnA = _resourcesQuery.GetTopViewedQnA(); // Set the data for all resources in the model. model.Viewings = GetViewings(model); model.LastViewedTimes = GetLastViewedTimes(model); model.Ratings = GetRatings(user.Id, model); model.Comments = GetComments(model); return(model); }
public ActionResult Newsletter(CommunicationsContext context) { var member = _membersQuery.GetMember(context.UserId); if (member == null || !member.IsEnabled || !member.IsActivated) { return(HttpNotFound()); } var candidate = _candidatesQuery.GetCandidate(context.UserId); var resume = candidate.ResumeId == null ? null : _resumesQuery.GetResume(candidate.ResumeId.Value); var model = CreateModel <NewsletterModel>(context); model.Member = member; model.Candidate = candidate; model.Resume = resume; var lastMonth = new DateTimeRange(DateTime.Today.AddMonths(-1), DateTime.Today); model.TotalJobAds = _jobAdReportsQuery.GetCreatedJobAds(lastMonth); model.TotalViewed = _employerMemberAccessReportsQuery.GetMemberViewings(context.UserId, lastMonth); model.ProfilePercentComplete = _memberStatusQuery.GetPercentComplete(member, candidate, resume); var execution = _executeJobAdSearchCommand.SearchSuggested(member, null, new Range(0, MaxSuggestedJobCount)); var jobAds = _jobAdsQuery.GetJobAds <JobAd>(execution.Results.JobAdIds).ToDictionary(j => j.Id, j => j); model.SuggestedJobs = (from i in execution.Results.JobAdIds where jobAds.ContainsKey(i) select jobAds[i]).ToList(); return(View(model)); }
public void OnMemberChanged(object sender, EventArgs <Member> e) { var member = e.Value; var candidate = _candidatesQuery.GetCandidate(member.Id); HandleStatusChanged(candidate.Id, candidate.Status); }
protected override Member CreateMember(int index) { var member = base.CreateMember(index); var candidate = _candidatesQuery.GetCandidate(member.Id); _candidateResumesCommand.AddTestResume(candidate); return(member); }
private Member CreateMember(int index) { var member = _memberAccountsCommand.CreateTestMember(index); var candidate = _candidatesQuery.GetCandidate(member.Id); _candidateResumesCommand.AddTestResume(candidate); _updateMemberSearchCommand.AddMember(member.Id); return(member); }
DocFile IJobAdApplicationsManager.GetResume(Member member) { var candidate = _candidatesQuery.GetCandidate(member.Id); var resume = candidate.ResumeId == null ? null : _resumesQuery.GetResume(candidate.ResumeId.Value); var view = new EmployerMemberView(member, candidate, resume, null, ProfessionalContactDegree.Applicant, false, false); return(_employerResumeFilesQuery.GetResumeFile(view)); }
protected Resume AddResume(Guid memberId) { var fileReference = GetResumeFile(); var resume = _parseResumesCommand.ParseResume(fileReference).Resume; var candidate = _candidatesQuery.GetCandidate(memberId); _candidateResumesCommand.CreateResume(candidate, resume); return(resume); }
private Guid?GetProfileResumeId(Guid memberId) { var candidate = _candidatesQuery.GetCandidate(memberId); if (candidate == null || candidate.ResumeId == null) { throw new NoResumeException(); } return(candidate.ResumeId.Value); }
public void TestCandidateEmailLinks() { var employer = _employerAccountsCommand.CreateTestEmployer(0, _organisationsCommand.CreateTestOrganisation(0)); var member = _memberAccountsCommand.CreateTestMember(0); var candidate = _candidatesQuery.GetCandidate(member.Id); _candidateResumesCommand.AddTestResume(candidate); // Send an email. var view = _employerMemberViewsQuery.GetEmployerMemberView(employer, member); _emailsCommand.TrySend(new EmployerContactCandidateConfirmationEmail(null, employer, member.Id, view.GetDisplayText(true), "subject", "content")); // Check the email. var email = _emailServer.AssertEmailSent(); var links = email.GetHtmlView().GetLinks(); Assert.AreEqual(2, links.Count); var definition = typeof(EmployerContactCandidateConfirmationEmail).Name; AssertLink(definition, GetCandidateUrl(member), links[0]); AssertLink(definition, _contactUsUrl, links[1]); // Check the tracking pixel. var link = email.GetHtmlView().GetImageLinks().Last(); AssertTrackingLink(link); // Check the MyCandidatesResumeEmail view = _employerMemberViewsQuery.GetEmployerMemberView(employer, member); _emailsCommand.TrySend(new CandidateResumeEmail(employer, view)); // Check the email. email = _emailServer.AssertEmailSent(); links = email.GetHtmlView().GetLinks(); Assert.AreEqual(3, links.Count); definition = typeof(CandidateResumeEmail).Name; AssertLink(definition, GetCandidateUrl(member), links[0]); AssertLink(definition, _candidateSearchUrl, links[1]); AssertLink(definition, _contactUsUrl, links[2]); // Check the tracking pixel. link = email.GetHtmlView().GetImageLinks().Last(); AssertTrackingLink(link); }
public void TestSuccess() { var member = _memberAccountsCommand.CreateTestMember(0); var candidate = _candidatesQuery.GetCandidate(member.Id); var resume = _candidateResumesCommand.AddTestResume(candidate); var view = new EmployerMemberView(member, candidate, resume, null, ProfessionalContactDegree.Applicant, false, false); var resumeFile = _resumeFilesQuery.GetResumeFile(view, resume); var integratorUser = _integrationCommand.CreateTestIntegratorUser(); Assert.AreEqual(resumeFile.Contents, Get(GetResumeUrl(candidate.Id), integratorUser, Password, true)); }
private void AssertAreEqual(IMember expectedMember, IMember member) { // User Assert.IsNotNull(expectedMember); Assert.IsNotNull(member); Assert.AreEqual(expectedMember.IsEnabled, member.IsEnabled); Assert.AreEqual(expectedMember.IsActivated, member.IsActivated); Assert.AreEqual(expectedMember.FirstName, member.FirstName); Assert.AreEqual(expectedMember.Id, member.Id); Assert.AreEqual(expectedMember.LastName, member.LastName); // Member Assert.AreEqual(expectedMember.DateOfBirth, member.DateOfBirth); Assert.AreEqual(expectedMember.VisibilitySettings.Professional.EmploymentVisibility, member.VisibilitySettings.Professional.EmploymentVisibility); Assert.AreEqual(expectedMember.VisibilitySettings.Professional.PublicVisibility, member.VisibilitySettings.Professional.PublicVisibility); Assert.AreEqual(expectedMember.VisibilitySettings.Personal.FirstDegreeVisibility, member.VisibilitySettings.Personal.FirstDegreeVisibility); Assert.AreEqual(expectedMember.Gender, member.Gender); Assert.AreEqual(expectedMember.PhotoId, member.PhotoId); Assert.AreEqual(expectedMember.VisibilitySettings.Personal.PublicVisibility, member.VisibilitySettings.Personal.PublicVisibility); Assert.AreEqual(expectedMember.VisibilitySettings.Personal.SecondDegreeVisibility, member.VisibilitySettings.Personal.SecondDegreeVisibility); if (expectedMember.EmailAddresses == null) { Assert.IsNull(member.EmailAddresses); } else { Assert.IsNotNull(member.EmailAddresses); Assert.AreEqual(expectedMember.EmailAddresses.Count, member.EmailAddresses.Count); for (var index = 0; index < expectedMember.EmailAddresses.Count; ++index) { Assert.AreEqual(expectedMember.EmailAddresses[index], member.EmailAddresses[index]); } } Assert.AreEqual(expectedMember.GetPhoneNumber(PhoneNumberType.Mobile), member.GetPhoneNumber(PhoneNumberType.Mobile)); Assert.AreEqual(expectedMember.GetPhoneNumber(PhoneNumberType.Home), member.GetPhoneNumber(PhoneNumberType.Home)); Assert.AreEqual(expectedMember.GetPhoneNumber(PhoneNumberType.Work), member.GetPhoneNumber(PhoneNumberType.Work)); Assert.AreEqual(expectedMember.Address.Id, member.Address.Id); Assert.AreEqual(expectedMember.Address.Line1, member.Address.Line1); Assert.AreEqual(expectedMember.Address.Line2, member.Address.Line2); Assert.AreEqual(expectedMember.Address.Location, member.Address.Location); AssertAreEqual(_candidatesQuery.GetCandidate(expectedMember.Id), _candidatesQuery.GetCandidate(member.Id)); }
private bool MatchAccount(IRegisteredUser member, Community community, ConvertModel convertModel) { // Must be an exact match. if (member.AffiliateId != community.Id || member.FirstName != convertModel.FirstName || member.LastName != convertModel.LastName) { return(false); } // Job title and company must be part of the resume titles and companies. var candidate = _candidatesQuery.GetCandidate(member.Id); if (candidate == null || candidate.ResumeId == null) { return(false); } var resume = _resumesQuery.GetResume(candidate.ResumeId.Value); if (resume == null || resume.Jobs == null || resume.Jobs.Count == 0) { return(false); } return(resume.Jobs.Any(j => !string.IsNullOrEmpty(j.Title) && j.Title.Contains(convertModel.JobTitle)) && resume.Jobs.Any(j => !string.IsNullOrEmpty(j.Company) && j.Company.Contains(convertModel.JobCompany))); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); Guid friendId; try { friendId = ParseUtil.ParseUserInputGuid(Request.QueryString[FriendIdParameter], "friend ID"); } catch (UserException ex) { AddError(ex.Message); return; } ViewedMember = _membersQuery.GetMember(friendId); if (ViewedMember == null) { AddError("There is no member with ID " + friendId); return; } ViewedCandidate = _candidatesQuery.GetCandidate(friendId); ViewedResume = ViewedCandidate.ResumeId == null ? null : _resumesQuery.GetResume(ViewedCandidate.ResumeId.Value); DisplayMember(); }
protected override MemberContent GetContent(Guid memberId, object cache) { var member = _membersQuery.GetMember(memberId); if (member == null) { return(null); } var candidate = _candidatesQuery.GetCandidate(memberId); if (candidate == null) { return(null); } var resume = candidate.ResumeId == null ? null : _resumesQuery.GetResume(candidate.ResumeId.Value); return(new MemberContent { Member = member, Candidate = candidate, Resume = resume, IncludeHidden = _includeHidden, }); }
private IList <Member> CreateCandidates(int count, JobAdEntry jobAd) { var members = new List <Member>(); for (var index = 0; index < count; ++index) { var member = CreateMember(index); var candidate = _candidatesQuery.GetCandidate(member.Id); var resume = _resumesQuery.GetResume(candidate.ResumeId.Value); resume.Jobs[0].Title = jobAd.Title; _candidateResumesCommand.UpdateResume(candidate, resume); _memberSearchService.UpdateMember(member.Id); members.Add(member); } return(members); }
private Member CreateMember() { var member = _memberAccountsCommand.CreateTestMember(0); var candidate = _candidatesQuery.GetCandidate(member.Id); _candidateResumesCommand.AddTestResume(candidate); return(member); }
private void AssertLocations(string emailAddress, ICollection <LocationReference> expectedLocations) { var candidate = _candidatesQuery.GetCandidate(_loginCredentialsQuery.GetUserId(emailAddress).Value); Assert.AreEqual(expectedLocations.Count, candidate.RelocationLocations.Count); foreach (var expectedLocation in expectedLocations) { Assert.IsTrue((from l in candidate.RelocationLocations where Equals(l, expectedLocation) select l).Any()); } }
private ApplicantModel GetApplicantModel(IMember member) { var candidate = member == null ? null : _candidatesQuery.GetCandidate(member.Id); return(new ApplicantModel { HasResume = HasResume(candidate), LastUsedResumeFile = GetLastUsedResumeFile(member), ProfileCompletePercent = GetProfilePercentComplete(member, candidate), }); }
protected void AssertStatus(JobAd jobAd, Guid applicantId, bool expectedHasSubmitted, bool expectedHasResume, string expectedLastUsedResumeFileName) { Assert.AreEqual(expectedHasSubmitted, _jobAdApplicationSubmissionsQuery.HasSubmittedApplication(applicantId, jobAd.Id)); var candidate = _candidatesQuery.GetCandidate(applicantId); Assert.AreEqual(expectedHasResume, candidate != null && candidate.ResumeId != null); var lastUserResumeFileName = GetLastUsedResumeFileName(applicantId); if (expectedLastUsedResumeFileName == null) { Assert.IsNull(lastUserResumeFileName); } else { Assert.IsNotNull(lastUserResumeFileName); Assert.AreEqual(expectedLastUsedResumeFileName, lastUserResumeFileName); } }
private Member[] CreateMembers(int count) { var members = new Member[count]; for (var index = 0; index < count; ++index) { members[index] = _memberAccountsCommand.CreateTestMember(index); var candidate = _candidatesQuery.GetCandidate(members[index].Id); _candidateResumesCommand.AddTestResume(candidate); } return(members); }
public new ActionResult Profile() { // Now that the user has gotten here hide all prompts. MemberContext.HideUpdateStatusReminder(); var member = CurrentMember; var candidate = _candidatesQuery.GetCandidate(member.Id); var resume = candidate.ResumeId == null ? null : _resumesQuery.GetResume(candidate.ResumeId.Value); return(View(CreateMemberModel(member, candidate, resume))); }
private void CreateMember(int index, DateTime createdTime) { var member = _memberAccountsCommand.CreateTestMember(index); member.CreatedTime = createdTime; _memberAccountsCommand.UpdateMember(member); var candidate = _candidatesQuery.GetCandidate(member.Id); _candidateResumesCommand.AddTestResume(candidate); _resumeReportsCommand.CreateResumeEvent(new ResumeUploadEvent { CandidateId = member.Id, ResumeId = candidate.ResumeId.Value, Time = member.CreatedTime }); }
private Member CreateMember(params LocationReference[] relocationLocations) { var member = CreateMember(0); if (relocationLocations != null && relocationLocations.Length > 0) { var candidate = _candidatesQuery.GetCandidate(member.Id); candidate.RelocationPreference = RelocationPreference.Yes; candidate.RelocationLocations = relocationLocations; _candidatesCommand.UpdateCandidate(candidate); } return(member); }
public void TestSavedSearch() { var member = _memberAccountsCommand.CreateTestMember(0); var candidate = _candidatesQuery.GetCandidate(member.Id); _candidateResumesCommand.AddTestResume(candidate); var employer = CreateEmployer(0); var criteria = new MemberSearchCriteria(); criteria.SetKeywords(BusinessAnalyst); _memberSearchesCommand.CreateMemberSearch(employer, new MemberSearch { Name = SavedSearchName, Criteria = criteria }); GetNewsletterUrl(employer.Id); var document = GetDocument(); var previousSearches = GetPreviousSearches(document); Assert.AreEqual(1, previousSearches.Count); Assert.AreEqual("Keywords: " + BusinessAnalyst, previousSearches[0].Item1); }
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 OnFriendInvitationSent(Member inviter, FriendInvitation invitation) { // Extra information. var view = new PersonalView(inviter, PersonalContactDegree.FirstDegree, PersonalContactDegree.Public); IList <Job> currentJobs = null; if (view.CanAccess(PersonalVisibility.CurrentJobs)) { var candidate = _candidatesQuery.GetCandidate(view.Id); var resume = candidate.ResumeId == null ? null : _resumesQuery.GetResume(candidate.ResumeId.Value); currentJobs = resume == null ? null : resume.CurrentJobs; } var contactCount = view.CanAccess(PersonalVisibility.FriendsList) ? _memberContactsQuery.GetFirstDegreeContacts(inviter.Id).Count : 0; if (invitation.InviteeId == null) { // Non-member. DonationRequest donationRequest = null; DonationRecipient donationRecipient = null; if (invitation.DonationRequestId != null) { donationRequest = _donationsQuery.GetRequest(invitation.DonationRequestId.Value); if (donationRequest != null) { donationRecipient = _donationsQuery.GetRecipient(donationRequest.RecipientId); } } var email = new ContactInvitationEmail(inviter, invitation, donationRequest, donationRecipient, currentJobs, contactCount); _emailsCommand.TrySend(email); } else { // Existing member. var to = _membersQuery.GetMember(invitation.InviteeId.Value); if (to != null) { var activation = GetEmailVerification(to, invitation); var email = new FriendInvitationEmail(to, inviter, invitation, activation, currentJobs, contactCount); _emailsCommand.TrySend(email); } } }
private void TestEditStatus(IUser member) { LogIn(member); GetPage <VisibilitySettingsBasic>(); var candidate = _candidatesQuery.GetCandidate(member.Id); Assert.AreEqual(CandidateStatus.ActivelyLooking, candidate.Status); Assert.IsTrue(_activeButton.IsChecked); Assert.IsFalse(_notLookingButton.IsChecked); _notLookingButton.IsChecked = true; _saveButton.Click(); GetPage <VisibilitySettingsBasic>(); AssertPage <VisibilitySettingsBasic>(); candidate = _candidatesQuery.GetCandidate(member.Id); Assert.AreEqual(CandidateStatus.NotLooking, candidate.Status); Assert.IsFalse(_activeButton.IsChecked); Assert.IsTrue(_notLookingButton.IsChecked); }
public void TestContactNumbers() { var employer0 = CreateEmployer(0, 100); CreateEmployer(1, (int?)null); for (int i = 0; i < 28; i++) { var member = CreateMember(i); var candidate = _candidatesQuery.GetCandidate(member.Id); _candidateResumesCommand.AddTestResume(candidate); if (i > 14) { Contact(employer0, member); } } }
private void SetView(IEmployer employer, Guid memberId, EmployerMemberView view) { var candidate = _candidatesQuery.GetCandidate(memberId); var resume = candidate.ResumeId == null ? null : _resumesQuery.GetResume(candidate.ResumeId.Value); view.Set( candidate, resume, HasViewedMember(employer, memberId), _candidateFlagListsQuery.IsFlagged(employer, memberId), _candidateFoldersQuery.IsInMobileFolder(employer, memberId), _candidateFoldersQuery.GetFolderCount(employer, memberId), _candidateNotesQuery.GetNoteCount(employer, memberId)); }
public void TestUploadResume() { var member = CreateMember(); var candidate = _candidatesQuery.GetCandidate(member.Id); var fileReference = GetResumeFile(); var resume = _parseResumesCommand.ParseResume(fileReference).Resume; _candidateResumesCommand.CreateResume(candidate, resume, fileReference); AssertEvents(candidate.Id, resume.Id, new ResumeUploadEvent()); }