public void TestResumeCount() { // Create users. CreateMember(1, true); var member2 = CreateMember(2, true); var member3 = CreateMember(3, true); CreateMember(4, false); // Send. _emailsCommand.TrySend(new StatsEmail(_dailyReportsQuery.GetDailyReport(DayRange.Yesterday))); // Check. var email = _emailServer.AssertEmailSent(); email.AssertHtmlViewContains("<td style=\"text-align:right;\">New resumes:</td>\r\n <td style=\"text-align:left;\">3</td>"); email.AssertHtmlViewContains("<td style=\"text-align:right;\">Uploaded resumes:</td>\r\n <td style=\"text-align:left;\">3</td>"); email.AssertHtmlViewContains("<td style=\"text-align:right;\">Reloaded resumes:</td>\r\n <td style=\"text-align:left;\">0</td>"); email.AssertHtmlViewContains("<td style=\"text-align:right;\">Edited resumes:</td>\r\n <td style=\"text-align:left;\">0</td>"); email.AssertHtmlViewContains("<td style=\"text-align:right;\">Updated resumes:</td>\r\n <td style=\"text-align:left;\">3</td>"); // Delete the UploadResume event for member2, but add an EditResume event. var events = _resumeReportsQuery.GetResumeEvents(member2.Id); _resumeReportsCommand.DeleteResumeEvent(events[0].Id); var candidate = _candidatesCommand.GetCandidate(member2.Id); _resumeReportsCommand.CreateResumeEvent(new ResumeEditEvent { CandidateId = member2.Id, ResumeId = candidate.ResumeId.Value, ResumeCreated = true, Time = events[0].Time }); _emailsCommand.TrySend(new StatsEmail(_dailyReportsQuery.GetDailyReport(DayRange.Yesterday))); email = _emailServer.AssertEmailSent(); email.AssertHtmlViewContains("<td style=\"text-align:right;\">New resumes:</td>\r\n <td style=\"text-align:left;\">3</td>"); email.AssertHtmlViewContains("<td style=\"text-align:right;\">Uploaded resumes:</td>\r\n <td style=\"text-align:left;\">2</td>"); email.AssertHtmlViewContains("<td style=\"text-align:right;\">Reloaded resumes:</td>\r\n <td style=\"text-align:left;\">0</td>"); email.AssertHtmlViewContains("<td style=\"text-align:right;\">Edited resumes:</td>\r\n <td style=\"text-align:left;\">1</td>"); email.AssertHtmlViewContains("<td style=\"text-align:right;\">Updated resumes:</td>\r\n <td style=\"text-align:left;\">3</td>"); // Delete the UploadResume event for member2, but add an ReloadResume event. events = _resumeReportsQuery.GetResumeEvents(member3.Id); candidate = _candidatesCommand.GetCandidate(member2.Id); _resumeReportsCommand.CreateResumeEvent(new ResumeReloadEvent { CandidateId = member3.Id, ResumeId = candidate.ResumeId.Value, Time = events[0].Time }); _emailsCommand.TrySend(new StatsEmail(_dailyReportsQuery.GetDailyReport(DayRange.Yesterday))); email = _emailServer.AssertEmailSent(); email.AssertHtmlViewContains("<td style=\"text-align:right;\">New resumes:</td>\r\n <td style=\"text-align:left;\">3</td>"); email.AssertHtmlViewContains("<td style=\"text-align:right;\">Uploaded resumes:</td>\r\n <td style=\"text-align:left;\">2</td>"); email.AssertHtmlViewContains("<td style=\"text-align:right;\">Reloaded resumes:</td>\r\n <td style=\"text-align:left;\">1</td>"); email.AssertHtmlViewContains("<td style=\"text-align:right;\">Edited resumes:</td>\r\n <td style=\"text-align:left;\">1</td>"); email.AssertHtmlViewContains("<td style=\"text-align:right;\">Updated resumes:</td>\r\n <td style=\"text-align:left;\">3</td>"); }
public void TestStatuses() { var employer = CreateEmployer(0); // Available now. var memberIndex = 0; const int availableNow = 4; for (var index = 0; index < availableNow; ++index) { var member = _memberAccountsCommand.CreateTestMember(memberIndex++); var candidate = _candidatesCommand.GetCandidate(member.Id); candidate.Status = CandidateStatus.AvailableNow; _candidatesCommand.UpdateCandidate(candidate); } // Actively looking. const int activelyLooking = 3; for (var index = 0; index < activelyLooking; ++index) { var member = _memberAccountsCommand.CreateTestMember(memberIndex++); var candidate = _candidatesCommand.GetCandidate(member.Id); candidate.Status = CandidateStatus.ActivelyLooking; _candidatesCommand.UpdateCandidate(candidate); } // Indigenous. const int aboriginal = 2; for (var index = 0; index < aboriginal; ++index) { var member = _memberAccountsCommand.CreateTestMember(memberIndex++); member.EthnicStatus = EthnicStatus.Aboriginal; _memberAccountsCommand.UpdateMember(member); } const int torreIslander = 3; for (var index = 0; index < torreIslander; ++index) { var member = _memberAccountsCommand.CreateTestMember(memberIndex++); member.EthnicStatus = EthnicStatus.TorresIslander; _memberAccountsCommand.UpdateMember(member); } GetNewsletterUrl(employer.Id); var document = GetDocument(); Assert.AreEqual(availableNow, GetSampleResults(document, Sample.ImmediatelyAvailable)); Assert.AreEqual(activelyLooking + aboriginal + torreIslander, GetSampleResults(document, Sample.ActivelyLooking)); Assert.AreEqual(aboriginal + torreIslander, GetSampleResults(document, Sample.Indigenous)); }
protected void TestCandidateUrls(IMember member, Action assert) { var candidateUrl = GetCandidateUrl(member, _candidatesCommand.GetCandidate(member.Id)); Get(candidateUrl); AssertUrl(candidateUrl); assert(); Get(GetCandidatesUrl(member.Id)); AssertUrl(candidateUrl); assert(); }
protected virtual Member CreateMember(int index) { var member = _memberAccountsCommand.CreateTestMember(index); var candidate = _candidatesCommand.GetCandidate(member.Id); _candidateResumesCommand.AddTestResume(candidate); return(member); }
protected Member CreateMember(int index, CandidateStatus status) { var member = _memberAccountsCommand.CreateTestMember(index); var candidate = _candidatesCommand.GetCandidate(member.Id); candidate.Status = status; _candidatesCommand.UpdateCandidate(candidate); return(member); }
public void TestDisplay() { var member = CreateMember(); ApplyForJob(_candidatesCommand.GetCandidate(member.Id)); LogIn(member); GetPage <PreviousApplications>(); AssertPageDoesNotContain("You currently have no job applications."); }
public override TemplateEmail GeneratePreview(Community community) { if (community != null) { return(null); } // Create an employer. var employer = CreateEmployer(); // Create a member. var member1 = CreateMember(); var candidate = _candidatesCommand.GetCandidate(member1.Id); _candidateResumesCommand.AddTestResume(candidate); var member2 = CreateOtherMember(); candidate = _candidatesCommand.GetCandidate(member2.Id); _candidateResumesCommand.AddTestResume(candidate); // Send the email. var views = _employerMemberViewsQuery.GetEmployerMemberViews(employer, new [] { member1, member2 }); return(new CandidateResumesEmail(employer, views)); }
protected Member CreateMember(CandidateStatus status, string desiredJobTitle) { var member = _memberAccountsCommand.CreateTestMember(EmailAddress, FirstName, LastName); var candidate = _candidatesCommand.GetCandidate(member.Id); candidate.Status = status; if (!string.IsNullOrEmpty(desiredJobTitle)) { candidate.DesiredJobTitle = desiredJobTitle; } _candidatesCommand.UpdateCandidate(candidate); return(member); }
private void CreateMember(int index, string desiredJobTitle, LocationReference location, Salary salary) { var member = _memberAccountsCommand.CreateTestMember(index); member.Address.Location = location; _memberAccountsCommand.UpdateMember(member); var candidate = _candidatesCommand.GetCandidate(member.Id); candidate.DesiredJobTitle = desiredJobTitle; candidate.DesiredSalary = salary; _candidatesCommand.UpdateCandidate(candidate); _candidateResumesCommand.AddTestResume(candidate); }
protected override void OnInit(EventArgs e) { base.OnInit(e); AddStyleSheetReference(StyleSheets.Networking); AddJavaScriptReference(JavaScripts.VisibilitySettings); btnSave.Attributes["onclick"] = "buttonClicked=true; return true;"; btnSave.Click += btnSave_Click; _candidate = _candidatesCommand.GetCandidate(LoggedInMember.Id); ucWorkStatusSettings.Display(_candidate); }
private new Member CreateMember(int index) { var member = base.CreateMember(index); var candidate = _candidatesCommand.GetCandidate(member.Id); _candidateResumesCommand.AddTestResume(candidate); candidate.DesiredSalary = new Salary { LowerBound = 40000, UpperBound = 50000, Rate = SalaryRate.Year, Currency = Currency.AUD }; _candidatesCommand.UpdateCandidate(candidate); return(member); }
public void TestCompleteResume() { var candidate = new Candidate { Id = Guid.NewGuid() }; _candidatesCommand.CreateCandidate(candidate); const string fileName = "resume.doc"; var data = TestResume.Complete.GetData(); FileReference fileReference; using (var stream = new MemoryStream(data)) { fileReference = _filesCommand.SaveFile(FileType.Resume, new StreamFileContents(stream), fileName); } var resume = _parseResumesCommand.ParseResume(data, fileName).Resume; _candidateResumesCommand.CreateResume(candidate, resume, fileReference); AssertResume(_candidatesCommand.GetCandidate(candidate.Id), resume, fileReference); }
public AjaxResult SaveWorkStatus(string status, string desiredJob) { try { EnsureMemberLoggedIn(); var candidate = _candidatesCommand.GetCandidate(LoggedInMember.Id); candidate.Status = string.IsNullOrEmpty(status) ? CandidateStatus.Unspecified : (CandidateStatus)Enum.Parse(typeof(CandidateStatus), status); candidate.DesiredJobTitle = desiredJob; _candidatesCommand.UpdateCandidate(candidate); return(new AjaxResult(AjaxResultCode.SUCCESS)); } catch (Exception ex) { return(HandleException(ex)); } }
private Member CreateMember(int index, bool withInvalidPostalSuburb) { var member = _memberAccountsCommand.CreateTestMember(index); member.VisibilitySettings.Personal.FirstDegreeVisibility = PersonalVisibilitySettings.ModerateFirstDegree; member.VisibilitySettings.Personal.SecondDegreeVisibility = PersonalVisibilitySettings.ModerateSecondDegree; member.VisibilitySettings.Personal.PublicVisibility = PersonalVisibilitySettings.ModeratePublic; member.Address.Location = withInvalidPostalSuburb ? _locationQuery.ResolveLocation(_locationQuery.GetCountry("Australia"), "xyz") : _locationQuery.ResolveLocation(_locationQuery.GetCountry("Australia"), "Melbourne VIC 3000"); _memberAccountsCommand.UpdateMember(member); var candidate = _candidatesCommand.GetCandidate(member.Id); candidate.Status = CandidateStatus.ActivelyLooking; _candidatesCommand.UpdateCandidate(candidate); return(member); }
private Member CreateMember(bool hasResume) { var member = CreateMember(); member.CreatedTime = DateTime.Now.AddDays(-20); _memberAccountsCommand.UpdateMember(member); var candidate = _candidatesCommand.GetCandidate(member.Id); candidate.Status = CandidateStatus.ActivelyLooking; _candidatesCommand.UpdateCandidate(candidate); if (hasResume) { _candidateResumesCommand.CreateResume(candidate, new Resume { LastUpdatedTime = DateTime.Now.AddDays(-10) }); } return(member); }
public void TestJobApplicationEmailLinks() { // Create a member. var member = _memberAccountsCommand.CreateTestMember(0); var candidate = _candidatesCommand.GetCandidate(member.Id); // Create an employer. var employer = _employerAccountsCommand.CreateTestEmployer(0, _organisationsCommand.CreateTestOrganisation(0)); var jobAd = employer.CreateTestJobAd(); var jobApplication = new InternalApplication { PositionId = jobAd.Id, ApplicantId = candidate.Id, CoverLetterText = CoverLetter }; // Send the email. var communication = new JobApplicationEmail(member, jobApplication, jobAd, null, null); _emailsCommand.TrySend(communication); // Check the email. var email = _emailServer.AssertEmailSent(); var links = email.GetHtmlView().GetLinks(); Assert.AreEqual(3, links.Count); var definition = typeof(JobApplicationEmail).Name; AssertLink(definition, EmployerHomeUrl, links[0]); AssertLink(definition, GetCandidateUrl(member), links[1]); AssertLink(definition, _contactUsUrl, links[2]); // Check the tracking pixel. var link = email.GetHtmlView().GetImageLinks().Last(); AssertTrackingLink(link); }
private void CreateFriend(Guid memberId, out Member friend, out Candidate candidate, out Resume resume) { friend = _memberAccountsCommand.CreateTestMember(1); candidate = _candidatesCommand.GetCandidate(friend.Id); // Set values. candidate.Status = CandidateStatus.OpenToOffers; _locationQuery.ResolvePostalSuburb(friend.Address.Location, Australia, Suburb + " " + Postcode + " " + CountrySubdivision); friend.PhoneNumbers = new List <PhoneNumber> { new PhoneNumber { Number = "123123123", Type = PhoneNumberType.Home }, new PhoneNumber { Number = "234234234", Type = PhoneNumberType.Mobile }, new PhoneNumber { Number = "345345345", Type = PhoneNumberType.Work }, }; friend.Gender = Gender.Male; friend.VisibilitySettings.Personal.FirstDegreeVisibility = PersonalVisibility.All; // Create a resume. _memberAccountsCommand.UpdateMember(friend); resume = CreateResume(candidate); // Save. _memberAccountsCommand.UpdateMember(friend); _candidatesCommand.UpdateCandidate(candidate); _networkingCommand.CreateFirstDegreeLink(memberId, friend.Id); }
protected Member CreateMember() { var member = CreateMember(0); member.Address.Location = _locationQuery.ResolveLocation(_locationQuery.GetCountry(Country), Location); _membersCommand.UpdateMember(member); // Give them a resume. var candidate = _candidatesCommand.GetCandidate(member.Id); var resume = new Resume { Jobs = new List <Job> { new Job { Title = Title } } }; _candidateResumesCommand.CreateResume(candidate, resume); return(member); }
void IDataExchange.UpdateStatus(Guid candidateId, State state) { #region Log const string method = "UpdateStatus"; EventSource.Raise(Event.Flow, method, Event.Arg("candidateId", candidateId), Event.Arg("state", state)); #endregion try { var candidate = _candidatesCommand.GetCandidate(candidateId); if (candidate != null) { candidate.Status = state.ToCandidateStatus(); _candidatesCommand.UpdateCandidate(candidate); } } catch (Exception e) { #region Log EventSource.Raise(Event.Error, method, e, null, Event.Arg("candidateId", candidateId), Event.Arg("state", state)); #endregion } }
public override TemplateEmail GeneratePreview(Community community) { if (community != null) { return(null); } // Create a member. var member = CreateMember(); var candidate = _candidatesCommand.GetCandidate(member.Id); // Create an employer. var employer = CreateEmployer(); var jobAd = employer.CreateTestJobAd(); var jobApplication = new InternalApplication { PositionId = jobAd.Id, ApplicantId = candidate.Id, CoverLetterText = CoverLetter }; // Send the email. return(new JobApplicationEmail(member, jobApplication, jobAd, null, null)); }
protected Member PreLoadTestUserProfiles(bool admin, bool createEmployer, bool link, bool inviters, bool fullSetOfNetworkers, bool jobs, bool references, bool resumeRequests) { #region set up 10 networkers Member five = null; Member six = null; Member member = _memberAccountsCommand.CreateTestMember(TestNetworkerUserId, "password", "Homer", "Simpson"); var candidate = _candidatesCommand.GetCandidate(member.Id); _candidateResumesCommand.AddTestResume(candidate); Member two = _memberAccountsCommand.CreateTestMember(TestUserTwoId, "password", "Two First", "Two Last"); Member three = _memberAccountsCommand.CreateTestMember(TestUserThreeId, "password", "Three First", "Three Last"); Member four = _memberAccountsCommand.CreateTestMember(TestUserFourId); if (fullSetOfNetworkers) { five = _memberAccountsCommand.CreateTestMember(TestUserFiveId); six = _memberAccountsCommand.CreateTestMember(TestUserSixId); _memberAccountsCommand.CreateTestMember(TestUserSevenId); _memberAccountsCommand.CreateTestMember(TestUserEightId); _memberAccountsCommand.CreateTestMember(TestUserNineId); } #endregion #region set up an employer and a job ad if (createEmployer) { Employer employer = _employerAccountsCommand.CreateTestEmployer(TestEmployerUserId, _organisationsCommand.CreateTestOrganisation("LinkMe Pty Ltd")); _allocationsCommand.CreateAllocation(new Allocation { OwnerId = employer.Id, CreditId = _creditsQuery.GetCredit <ContactCredit>().Id, InitialQuantity = 1000 }); _allocationsCommand.CreateAllocation(new Allocation { OwnerId = employer.Id, CreditId = _creditsQuery.GetCredit <JobAdCredit>().Id, InitialQuantity = 1000 }); var ja = employer.CreateTestJobAd("test job", "lol test job"); _jobAdsCommand.PostJobAd(ja); } #endregion #region set up an administrator if (admin) { CreateAdministrator(TestAdministratorUserId); } #endregion #region link up some users if (link) { _networkingCommand.CreateFirstDegreeLink(member.Id, two.Id); _networkingCommand.CreateFirstDegreeLink(member.Id, three.Id); _networkingCommand.CreateFirstDegreeLink(member.Id, four.Id); } if (link && fullSetOfNetworkers) { _networkingCommand.CreateFirstDegreeLink(two.Id, five.Id); _networkingCommand.CreateFirstDegreeLink(two.Id, six.Id); _networkingCommand.CreateFirstDegreeLink(three.Id, six.Id); } #endregion return(member); }
public void TestResultsNoCurrentJob() { // Create an employer and search. var employer = CreateEmployer(0, false); var criteria = new MemberSearchCriteria { JobTitle = JobTitle }; var search = new MemberSearch { OwnerId = employer.Id, Criteria = criteria }; // No current job. var member = CreateMember(); var candidate = _candidatesCommand.GetCandidate(member.Id); var resume = _candidateResumesCommand.AddTestResume(candidate); resume.Jobs = null; _candidateResumesCommand.UpdateResume(candidate, resume); var results = new MemberSearchResults { MemberIds = new [] { member.Id }, TotalMatches = 1 }; // Send. var email = SendAlertEmail(employer, search, results); // Check. AssertMail(email, employer, search, results, 0, 0, false); }
public AjaxResult SavePrimaryDetails(string firstName, string lastName, string mobilePhone, string workPhone, string homePhone, string[] industryIds, string countryId, string location) { var errorMessages = new List <string>(); if (string.IsNullOrEmpty(location)) { errorMessages.Add(ValidationErrorMessages.REQUIRED_FIELD_LOCATION); } if (string.IsNullOrEmpty(firstName)) { errorMessages.Add(ValidationErrorMessages.REQUIRED_FIELD_FIRST_NAME); } else if (!FirstNameRegex.IsMatch(firstName)) { errorMessages.Add(ValidationErrorMessages.INVALID_FIRST_NAME); } if (string.IsNullOrEmpty(lastName)) { errorMessages.Add(ValidationErrorMessages.REQUIRED_FIELD_LAST_NAME); } else if (!LastNameRegex.IsMatch(lastName)) { errorMessages.Add(ValidationErrorMessages.INVALID_LAST_NAME); } if (string.IsNullOrEmpty(mobilePhone) && string.IsNullOrEmpty(workPhone) && string.IsNullOrEmpty(homePhone)) { errorMessages.Add(ValidationErrorMessages.REQUIRED_FIELD_CONTACT_PHONE); } if ((!string.IsNullOrEmpty(mobilePhone) && !PhoneRegex.IsMatch(mobilePhone)) || (!string.IsNullOrEmpty(workPhone) && !PhoneRegex.IsMatch(workPhone)) || (!string.IsNullOrEmpty(homePhone) && !PhoneRegex.IsMatch(homePhone))) { errorMessages.Add(ValidationErrorMessages.INVALID_PHONE_NUMBER); } if (errorMessages.Count != 0) { return(new AjaxResult(AjaxResultCode.FAILURE, ConvertMessagesToString(errorMessages))); } try { EnsureMemberLoggedIn(); var member = LoggedInMember; member.FirstName = firstName; member.LastName = lastName; member.PhoneNumbers = new List <PhoneNumber>(); if (!string.IsNullOrEmpty(mobilePhone)) { member.PhoneNumbers.Add(new PhoneNumber { Number = mobilePhone, Type = PhoneNumberType.Mobile }); } if (!string.IsNullOrEmpty(homePhone)) { member.PhoneNumbers.Add(new PhoneNumber { Number = homePhone, Type = PhoneNumberType.Home }); } if (!string.IsNullOrEmpty(workPhone)) { member.PhoneNumbers.Add(new PhoneNumber { Number = workPhone, Type = PhoneNumberType.Work }); } var country = _locationQuery.GetCountry(int.Parse(countryId)); member.Address.Location = _locationQuery.ResolveLocation(country, location); _memberAccountsCommand.UpdateMember(member); var candidate = _candidatesCommand.GetCandidate(member.Id); candidate.Industries = (from i in industryIds select _industriesQuery.GetIndustry(ParseUtil.ParseUserInputGuid(i, "industry ID"))).ToList(); _candidatesCommand.UpdateCandidate(candidate); return(new AjaxResult(AjaxResultCode.SUCCESS)); } catch (Exception ex) { return(HandleException(ex)); } }
public void TestEmailProfileDetails() { var index = 0; // Create the inviter. var inviter = _memberAccountsCommand.CreateTestMember(0); inviter.VisibilitySettings.Personal.FirstDegreeVisibility = PersonalVisibility.All; _memberAccountsCommand.UpdateMember(inviter); // All access, no properties set. index++; var invitee = _memberAccountsCommand.CreateTestMember(index); var invitation = new FriendInvitation { InviterId = inviter.Id, InviteeId = invitee.Id, Text = MessageText, DonationRequestId = null }; _networkingInvitationsCommand.CreateInvitation(invitation); var templateEmail = new FriendInvitationEmail(invitee, inviter, invitation, null, GetCurrentJobs(inviter.Id), 0); _emailsCommand.TrySend(templateEmail); var email = _emailServer.AssertEmailSent(); email.AssertAddresses(inviter, Return, invitee); email.AssertSubject(GetSubject()); email.AssertHtmlViewChecks(); AssertHtmlView(email, templateEmail, inviter, invitee, invitation, null); email.AssertNoAttachments(); AssertCompatibleAddresses(email); // All access, 1 friend. index++; var friend = _memberAccountsCommand.CreateTestMember(index); _networkingCommand.CreateFirstDegreeLink(inviter.Id, friend.Id); index++; invitee = _memberAccountsCommand.CreateTestMember(index); invitation = new FriendInvitation { InviterId = inviter.Id, InviteeId = invitee.Id, Text = MessageText, DonationRequestId = null }; _networkingInvitationsCommand.CreateInvitation(invitation); templateEmail = new FriendInvitationEmail(invitee, inviter, invitation, null, GetCurrentJobs(inviter.Id), 1); _emailsCommand.TrySend(templateEmail); email = _emailServer.AssertEmailSent(); email.AssertAddresses(inviter, Return, invitee); email.AssertSubject(GetSubject()); email.AssertHtmlViewChecks(); AssertHtmlView(email, templateEmail, inviter, invitee, invitation, null); email.AssertNoAttachments(); AssertCompatibleAddresses(email); // All access, 2 friends. index++; friend = _memberAccountsCommand.CreateTestMember(index); _networkingCommand.CreateFirstDegreeLink(inviter.Id, friend.Id); index++; invitee = _memberAccountsCommand.CreateTestMember(index); invitation = new FriendInvitation { InviterId = inviter.Id, InviteeId = invitee.Id, Text = MessageText, DonationRequestId = null }; _networkingInvitationsCommand.CreateInvitation(invitation); templateEmail = new FriendInvitationEmail(invitee, inviter, invitation, null, GetCurrentJobs(inviter.Id), 2); _emailsCommand.TrySend(templateEmail); email = _emailServer.AssertEmailSent(); email.AssertAddresses(inviter, Return, invitee); email.AssertSubject(GetSubject()); email.AssertHtmlViewChecks(); AssertHtmlView(email, templateEmail, inviter, invitee, invitation, null); email.AssertNoAttachments(); AssertCompatibleAddresses(email); // No access, 2 friends. inviter.VisibilitySettings.Personal.FirstDegreeVisibility &= ~PersonalVisibility.FriendsList; _memberAccountsCommand.UpdateMember(inviter); index++; invitee = _memberAccountsCommand.CreateTestMember(index); invitation = new FriendInvitation { InviterId = inviter.Id, InviteeId = invitee.Id, Text = MessageText, DonationRequestId = null }; _networkingInvitationsCommand.CreateInvitation(invitation); templateEmail = new FriendInvitationEmail(invitee, inviter, invitation, null, GetCurrentJobs(inviter.Id), 0); _emailsCommand.TrySend(templateEmail); email = _emailServer.AssertEmailSent(); email.AssertAddresses(inviter, Return, invitee); email.AssertSubject(GetSubject()); email.AssertHtmlViewChecks(); AssertHtmlView(email, templateEmail, inviter, invitee, invitation, null); email.AssertNoAttachments(); AssertCompatibleAddresses(email); // All access, current jobs set. inviter.VisibilitySettings.Personal.FirstDegreeVisibility |= PersonalVisibility.FriendsList; _memberAccountsCommand.UpdateMember(inviter); var candidate = _candidatesCommand.GetCandidate(inviter.Id); _candidateResumesCommand.AddTestResume(candidate); index++; invitee = _memberAccountsCommand.CreateTestMember(index); invitation = new FriendInvitation { InviterId = inviter.Id, InviteeId = invitee.Id, Text = MessageText, DonationRequestId = null }; _networkingInvitationsCommand.CreateInvitation(invitation); templateEmail = new FriendInvitationEmail(invitee, inviter, invitation, null, GetCurrentJobs(inviter.Id), 2); _emailsCommand.TrySend(templateEmail); email = _emailServer.AssertEmailSent(); email.AssertAddresses(inviter, Return, invitee); email.AssertSubject(GetSubject()); email.AssertHtmlViewChecks(); AssertHtmlView(email, templateEmail, inviter, invitee, invitation, null); email.AssertNoAttachments(); AssertCompatibleAddresses(email); // No access, current jobs set. inviter.VisibilitySettings.Personal.FirstDegreeVisibility &= ~PersonalVisibility.CurrentJobs; _memberAccountsCommand.UpdateMember(inviter); index++; invitee = _memberAccountsCommand.CreateTestMember(index); invitation = new FriendInvitation { InviterId = inviter.Id, InviteeId = invitee.Id, Text = MessageText, DonationRequestId = null }; _networkingInvitationsCommand.CreateInvitation(invitation); templateEmail = new FriendInvitationEmail(invitee, inviter, invitation, null, null, 2); _emailsCommand.TrySend(templateEmail); email = _emailServer.AssertEmailSent(); email.AssertAddresses(inviter, Return, invitee); email.AssertSubject(GetSubject()); email.AssertHtmlViewChecks(); AssertHtmlView(email, templateEmail, inviter, invitee, invitation, null); email.AssertNoAttachments(); AssertCompatibleAddresses(email); }