protected override void OnLoad(EventArgs e) { base.OnLoad(e); _view = _memberViewsQuery.GetPersonalView(LoggedInMemberId, _invitee); imgPhoto.ImageUrl = _view.GetPhotoUrlOrDefault().ToString(); }
private void LoadFormData() { Member member = LoggedInMember; foreach (VisibilityCheckBoxRow row in Rows) { PersonalContactDegree level = PersonalContactDegree.Self; var viewer = new PersonalView(member, PersonalContactDegree.FirstDegree, PersonalContactDegree.FirstDegree); if (viewer.CanAccess(row.ContactAccessFlag)) { level++; viewer = new PersonalView(member, PersonalContactDegree.SecondDegree, PersonalContactDegree.SecondDegree); if (viewer.CanAccess(row.ContactAccessFlag)) { level++; viewer = new PersonalView(member, PersonalContactDegree.Public, PersonalContactDegree.Public); if (viewer.CanAccess(row.ContactAccessFlag)) { level++; } } } row.ContactDegree = level; } }
private void AssertFriend(Member friend, ICandidate candidate, IResume resume) { AssertPageContains(friend.FullName); var viewer = new PersonalView(friend, PersonalContactDegree.FirstDegree, PersonalContactDegree.FirstDegree); // Current Jobs. if (viewer.CanAccess(PersonalVisibility.CurrentJobs)) { AssertPageContains(resume.GetCurrentJobsDisplayHtml()); } else { AssertPageDoesNotContain(resume.GetCurrentJobsDisplayHtml()); } // Candidate Status. if (viewer.CanAccess(PersonalVisibility.CandidateStatus)) { if (candidate.Status != CandidateStatus.Unspecified) { AssertPageContains(NetworkerFacade.GetCandidateStatusText(candidate.Status)); } } else { if (candidate.Status != CandidateStatus.Unspecified) { AssertPageDoesNotContain(NetworkerFacade.GetCandidateStatusText(candidate.Status)); } } // Suburb. if (viewer.CanAccess(PersonalVisibility.Suburb)) { AssertPageContains(friend.Address.Location.Suburb); AssertPageContains(" " + friend.Address.Location.Postcode); } else { AssertPageDoesNotContain(friend.Address.Location.Suburb); AssertPageDoesNotContain(" " + friend.Address.Location.Postcode); // GUIDs can contain "3143", too! } // CountrySubdivision. if (viewer.CanAccess(PersonalVisibility.CountrySubdivision)) { AssertPageContains(friend.Address.Location.CountrySubdivision.ShortName); } else { AssertPageDoesNotContain(friend.Address.Location.CountrySubdivision.ShortName); } }
private static void SetPlaceHolderVisibility(Control placeHolder, PersonalView viewer, PersonalVisibility visibility) { if (placeHolder == null) { throw new ArgumentNullException("placeHolder"); } placeHolder.Visible = viewer.CanAccess(visibility); }
private void SetPageVisibility(PersonalContactDegree effectiveOwnerDegreeFromViewer, PersonalContactDegree actualOwnerDegreeFromViewer) { var view = new PersonalView(OwnerOfFriends, effectiveOwnerDegreeFromViewer, actualOwnerDegreeFromViewer); imgPhoto.Width = Constants.ThumbnailMaxSize.Width; imgPhoto.Height = Constants.ThumbnailMaxSize.Height; imgPhoto.ImageUrl = view.GetPhotoUrlOrDefault().ToString(); var canSendInvites = view.CanAccess(PersonalVisibility.SendInvites); phAddToFriends.Visible = canSendInvites && actualOwnerDegreeFromViewer != PersonalContactDegree.Self && actualOwnerDegreeFromViewer != PersonalContactDegree.FirstDegree; }
private void AssertLinks(IList <Member> friends) { for (var index = 0; index < friends.Count; ++index) { var friend = friends[index]; var view = new PersonalView(friend, PersonalContactDegree.FirstDegree, PersonalContactDegree.FirstDegree); var lnkFullProfile = new HtmlLinkTester(Browser, AddBodyPrefix("FormContent_Content") + "_contactsListControl_rptContacts_ctl" + index.ToString("D2") + "_ucContactsListDetails_lnkFullProfile"); Assert.IsTrue(lnkFullProfile.IsVisible); var lnkViewFriends = new HtmlLinkTester(Browser, AddBodyPrefix("FormContent_Content") + "_contactsListControl_rptContacts_ctl" + index.ToString("D2") + "_ucContactsListDetails_lnkViewFriends"); Assert.AreEqual(lnkViewFriends.IsVisible, view.CanAccess(PersonalVisibility.FriendsList)); } }
private static void PopulateDynamicControls(Control placeHolder, PersonalView view, string itemSuffix) { if (placeHolder.Controls.Count == 0) { return; } var iExtraActions = placeHolder.Controls[0] as IExtraContactDetailsControl; if (iExtraActions != null) { iExtraActions.DisplayContact(view, itemSuffix); } }
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 DisplayMember() { _view = _memberViewsQuery.GetPersonalView(LoggedInUserId, ViewedMember); AddTitleValue(ViewedMember.FirstName.MakeNamePossessive()); DisplayDetails(); DisplayFriends(); DisplayContactDetails(); DisplayWorkStatus(); DisplayCareer(); DisplayOccupation(); DisplayEducation(); DisplayWorkHistory(); DisplayInterestsAffiliations(); }
public void TestInviteSecondDegreeContact() { _secondDegreeContact = _membersQuery.GetMember(_secondDegreeContact.Id); // With permission _secondDegreeContact.VisibilitySettings.Personal.Set(PersonalContactDegree.SecondDegree, PersonalVisibility.SendInvites); var view = new PersonalView(_secondDegreeContact, PersonalContactDegree.SecondDegree, PersonalContactDegree.SecondDegree); Assert.IsTrue(view.CanAccess(PersonalVisibility.SendInvites)); _memberAccountsCommand.UpdateMember(_secondDegreeContact); RequestInvitation(_secondDegreeContact.Id); AssertPageContains(string.Format(AddToFriends.HeadingFormat, _secondDegreeContact.FirstName)); // Without permission _secondDegreeContact.VisibilitySettings.Personal.Set(PersonalContactDegree.FirstDegree, PersonalVisibility.SendInvites); Assert.IsTrue(!view.CanAccess(PersonalVisibility.SendInvites)); _memberAccountsCommand.UpdateMember(_secondDegreeContact); RequestInvitation(_secondDegreeContact.Id); AssertPageContains(NotAcceptingInvitations); }
public void DisplayContact(PersonalView view, string itemSuffix) { lnkInviteRepresentative.NavigateUrl = "javascript:populateOverlayPopup('" + GetUrlForPage <RepresentativePopupContents>() + "', '" + RepresentativePopupContents.InviteeIdParameter + "=" + view.Id + "');"; }
private string GetContent(TemplateEmail templateEmail, Member inviter, Request invitation, DonationRequest donationRequest, DonationRecipient donationRecipient) { var friendCount = Resolve <IMemberContactsQuery>().GetFirstDegreeContacts(inviter.Id).Count; var sb = new StringBuilder(); sb.AppendLine("<p>Hi</p>"); sb.AppendLine("<p>"); sb.AppendLine(" " + inviter.FullName + " has sent you a request to join their personal network."); sb.AppendLine("</p>"); // Show details if set. var currentJobs = GetCurrentJobs(inviter.Id); var view = new PersonalView(inviter, PersonalContactDegree.FirstDegree, PersonalContactDegree.FirstDegree); bool currentJobsVisible = view.CanAccess(PersonalVisibility.CurrentJobs) && !currentJobs.IsNullOrEmpty() && currentJobs.Count > 0; bool contactCountVisible = view.CanAccess(PersonalVisibility.FriendsList) && friendCount > 0; sb.AppendLine(); if (currentJobsVisible || contactCountVisible) { sb.AppendLine("<div style=\"padding-left: 30px; font-family: Arial, Helvetica, sans-serif;\">"); sb.AppendLine(" <p>"); sb.AppendLine(" " + inviter.FullName); sb.AppendLine(); } if (currentJobsVisible) { sb.AppendLine(" <br />"); var currentJob = (from j in currentJobs where !string.IsNullOrEmpty(j.Title) && j.Dates.Start != null orderby j.Dates.Start.Value descending select j.Title).FirstOrDefault(); sb.AppendLine(" " + currentJob); sb.AppendLine(); } if (contactCountVisible) { sb.AppendLine(); sb.AppendLine(" <br />"); sb.AppendLine(" already has " + friendCount + " friend" + (friendCount > 1 ? "s" : "")); sb.AppendLine(" in their network who may be able to help you in your career."); } if (currentJobsVisible || contactCountVisible) { sb.AppendLine(); sb.AppendLine(" </p>"); sb.AppendLine("</div>"); sb.AppendLine(); } sb.AppendLine("<p>"); sb.AppendLine(" A profile on our network will help position your career for success."); sb.AppendLine(" 1000s of employers are searching for talent like you."); sb.AppendLine("</p>"); sb.AppendLine(); if (donationRequest != null) { sb.AppendLine("<p>We'll also donate " + donationRequest.Amount.ToString("C") + " to the " + donationRecipient.Name + " when you join.</p>"); sb.AppendLine(); } sb.AppendLine(); if (!string.IsNullOrEmpty(invitation.Text)) { sb.AppendLine("<p>"); sb.AppendLine(" " + inviter.FirstName.MakeNamePossessive() + " personal message:"); sb.AppendLine(" <br />"); sb.AppendLine(" " + HtmlUtil.LineBreaksToHtml(HttpUtility.HtmlEncode(invitation.Text))); sb.AppendLine("</p>"); sb.AppendLine(); } sb.AppendLine("<p>"); sb.AppendLine(" <a href=\"" + GetTinyUrl(templateEmail, false, "~/Join.aspx", "inviteId", invitation.Id.ToString("N")) + "\">Join " + inviter.FirstName.MakeNamePossessive() + " network</a>"); sb.AppendLine("</p>"); return(sb.ToString()); }
private string GetContent(TemplateEmail templateEmail, Member inviter, IRegisteredUser invitee, int friendCount, Request invitation, EmailVerification emailVerification) { var sb = new StringBuilder(); sb.AppendLine("<p>Hi " + invitee.FirstName + "</p>"); sb.AppendLine("<p>"); sb.AppendLine(" " + inviter.FullName + " has sent you a request to join their personal network."); sb.AppendLine("</p>"); // Show details if set. var currentJobs = GetCurrentJobs(inviter.Id); var view = new PersonalView(inviter, PersonalContactDegree.FirstDegree, PersonalContactDegree.FirstDegree); var currentJobsVisible = view.CanAccess(PersonalVisibility.CurrentJobs) && !currentJobs.IsNullOrEmpty() && currentJobs.Count > 0; var contactCountVisible = view.CanAccess(PersonalVisibility.FriendsList) && friendCount > 0; sb.AppendLine(); if (currentJobsVisible || contactCountVisible) { sb.AppendLine("<div style=\"padding-left: 30px; font-family: Arial, Helvetica, sans-serif;\">"); sb.AppendLine(" <p>"); sb.AppendLine(" " + inviter.FullName); sb.AppendLine(); } if (currentJobsVisible) { sb.AppendLine(" <br />"); var currentJob = (from j in currentJobs where !string.IsNullOrEmpty(j.Title) && j.Dates.Start != null orderby j.Dates.Start.Value descending select j.Title).FirstOrDefault(); sb.AppendLine(" " + currentJob); sb.AppendLine(); } if (contactCountVisible) { sb.AppendLine(); sb.AppendLine(" <br />"); sb.AppendLine(" already has " + friendCount + " friend" + (friendCount > 1 ? "s" : "")); sb.AppendLine(" in their network who may be able to help you in your career."); } if (currentJobsVisible || contactCountVisible) { sb.AppendLine(); sb.AppendLine(" </p>"); sb.AppendLine("</div>"); sb.AppendLine(); } // Show individual text if set. sb.AppendLine(); if (!string.IsNullOrEmpty(invitation.Text)) { sb.AppendLine("<p>"); sb.AppendLine(" " + inviter.FirstName.MakeNamePossessive() + " personal message:"); sb.AppendLine(" <br />"); sb.AppendLine(" " + HtmlUtil.LineBreaksToHtml(HttpUtility.HtmlEncode(invitation.Text))); sb.AppendLine("</p>"); sb.AppendLine(); } // Link depends on whether the invitee is activated. sb.AppendLine("<p>"); sb.AppendLine(); if (emailVerification == null) { sb.AppendLine(" <a class=\"major-action\" href=\"" + GetTinyUrl(templateEmail, true, "~/members/friends/Invitations.aspx") + "\">Respond to " + inviter.FirstName.MakeNamePossessive() + " personal invitation</a>"); sb.AppendLine(); } else { sb.AppendLine(" <a class=\"major-action\" href=\"" + GetTinyUrl(templateEmail, false, "~/accounts/activation", "activationCode", emailVerification.VerificationCode, "isInvite", "true") + "\">Reactivate"); sb.AppendLine(" your account and respond to " + inviter.FirstName.MakeNamePossessive() + " friend request</a>"); sb.AppendLine(); } sb.AppendLine("</p>"); sb.AppendLine("<p><strong>Did you know that 60% of jobs are found through people you "); sb.AppendLine("know?</strong></p>"); return(sb.ToString()); }
private bool AssertFriendsFriend(Guid memberId, Member friendsFriend, ICandidate friendsCandidate, IResume friendsResume, bool checkAddress) { try { AssertPageContains(friendsFriend.FullName); var contactDegree = friendsFriend.Id == memberId ? PersonalContactDegree.Self : PersonalContactDegree.SecondDegree; var view = new PersonalView(friendsFriend, contactDegree, contactDegree); // Current Jobs. if (view.CanAccess(PersonalVisibility.CurrentJobs)) { var currentJobs = friendsResume.GetCurrentJobsDisplayHtml(); if (!string.IsNullOrEmpty(currentJobs)) { AssertPageContains(currentJobs); } } else { var currentJobs = friendsResume.GetCurrentJobsDisplayHtml(); if (!string.IsNullOrEmpty(currentJobs)) { AssertPageDoesNotContain(friendsResume.GetCurrentJobsDisplayHtml()); } } // Candidate Status. if (view.CanAccess(PersonalVisibility.CandidateStatus)) { if (friendsCandidate.Status != CandidateStatus.Unspecified) { AssertPageContains(NetworkerFacade.GetCandidateStatusText(friendsCandidate.Status)); } } else { if (friendsCandidate.Status != CandidateStatus.Unspecified) { AssertPageDoesNotContain(NetworkerFacade.GetCandidateStatusText(friendsCandidate.Status)); } } // Suburb. if (checkAddress) { if (view.CanAccess(PersonalVisibility.Suburb)) { AssertPageContains(friendsFriend.Address.Location.Suburb); AssertPageContains(" " + friendsFriend.Address.Location.Postcode); } else { AssertPageDoesNotContain(friendsFriend.Address.Location.Suburb); AssertPageDoesNotContain(" " + friendsFriend.Address.Location.Postcode); } // CountrySubdivision. if (view.CanAccess(PersonalVisibility.CountrySubdivision)) { AssertPageContains(friendsFriend.Address.Location.CountrySubdivision.ShortName); } else { AssertPageDoesNotContain(friendsFriend.Address.Location.CountrySubdivision.ShortName); } } return(true); } catch (AssertFailedException) { return(false); } }
public static string GetEmailAddressDisplayText(this PersonalView view) { var emailAddress = view.GetBestEmailAddress(); return(emailAddress == null || emailAddress.Address == null ? "[" + EmailHiddenText + "]" : emailAddress.Address); }
public static string GetFirstNameDisplayText(this PersonalView view) { return(view.FirstName ?? "[" + NameHiddenText + "]"); }
public void DisplayContact(PersonalView view, Member member, Candidate candidate, Resume resume, string itemSuffix) { // Image. lnkPhoto.NavigateUrl = BuildViewProfileLink(view.Id).ToString(); imgPhoto.ImageUrl = view.GetPhotoUrlOrDefault().ToString(); // Full Name. lnkFullName.NavigateUrl = BuildViewProfileLink(view.Id).ToString(); lnkFullName.Text = AlwaysDisplayNames ? HtmlUtil.TextToHtml(((ICommunicationRecipient)view).FullName) : HtmlUtil.TextToHtml(view.GetFullNameDisplayText()); // Representative. switch (view.EffectiveContactDegree) { case PersonalContactDegree.Representative: phRepresentative.Visible = true; lblRepresentative.Text = view.EffectiveContactDegree.GetRepresentativeDescriptionText(); break; case PersonalContactDegree.Representee: phRepresentative.Visible = true; lblRepresentative.Text = view.EffectiveContactDegree.GetRepresentativeDescriptionText(); break; default: phRepresentative.Visible = false; break; } // Current Title. var currentJobsText = resume == null ? null : resume.GetCurrentJobsDisplayHtml(); if (string.IsNullOrEmpty(currentJobsText)) { phCurrentJobs.Visible = false; } else { lblCurrentJobsCaption.Text = GetCurrentJobsCaption(resume); ltlCurrentJobs.Text = currentJobsText; SetPlaceHolderVisibility(phCurrentJobs, view, PersonalVisibility.CurrentJobs); } // Candidate Status. if (candidate.Status == CandidateStatus.Unspecified) { phCandidateStatus.Visible = false; } else { ltlCandidateStatus.Text = NetworkerFacade.GetCandidateStatusText(candidate.Status); SetPlaceHolderVisibility(phCandidateStatus, view, PersonalVisibility.CandidateStatus); } // Location. var locationText = GetDisplayText(member.Address.Location, view); if (string.IsNullOrEmpty(locationText)) { phLocation.Visible = false; } else { ltlLocation.Text = locationText; phLocation.Visible = true; } // Full Profile. lnkFullProfile.NavigateUrl = BuildViewProfileLink(view.Id).ToString(); // Send Message. if (LoggedInUserId == view.Id) { phThisIsYou.Visible = true; } // View Friends. lnkViewFriends.NavigateUrl = BuildViewFriendsLink(view.Id).ToString(); SetPlaceHolderVisibility(phViewFriends, view, PersonalVisibility.FriendsList); if (!CanAccessFriends) { phViewFriends.Visible = false; } // Add To Friends. lnkAddToFriends.NavigateUrl = "javascript:populateOverlayPopup('" + GetUrlForPage <InvitationPopupContents>() + "', '" + InvitationPopupContents.InviteeIdParameter + "=" + view.Id + "');"; phAddToFriends.Visible = (view.ActualContactDegree != PersonalContactDegree.Self && view.ActualContactDegree != PersonalContactDegree.FirstDegree && view.CanAccess(PersonalVisibility.SendInvites)); if (!CanAddToFriends) { phAddToFriends.Visible = false; } // Extra details, if any. PopulateDynamicControls(phExtraDescription, view, itemSuffix); PopulateDynamicControls(phExtraActions, view, itemSuffix); }
protected static string GetDisplayText(LocationReference location, PersonalView viewer) { return(HtmlUtil.TextToHtml(location.ToString(viewer.CanAccess(PersonalVisibility.CountrySubdivision), viewer.CanAccess(PersonalVisibility.Suburb)))); }