Beispiel #1
0
        private void lnkAcceptInvitation_Click(object sender, EventArgs e)
        {
            try
            {
                var invitation = _memberFriendsQuery.GetFriendInvitation(ViewedMember.Id, LoggedInMember.Id);
                _memberFriendsCommand.AcceptInvitation(LoggedInMember.Id, invitation);

                var acceptMsg = invitation.GetInvitationAcceptedHtml(ViewedMember);

                phInvitation.Visible   = false;
                phRemoveFriend.Visible = true;

                DisplayMember(); // Redisplay the details now that the viewer has 1st-degree access.

                AddConfirm(acceptMsg, false);
            }
            catch (UserException ex)
            {
                AddError(ex.Message);
            }
            catch (InvalidOperationException ex)
            {
                AddError(ex.Message);
            }
        }
Beispiel #2
0
        public void TestInvitationEmailLinks()
        {
            var category = _settingsQuery.GetCategory("MemberToMemberNotification");

            // Create some members.

            var inviter = _memberAccountsCommand.CreateTestMember(EmailAddress);
            var invitee = _memberAccountsCommand.CreateTestMember(EmailAddress2);

            // Create an invitation.

            var invitation = new FriendInvitation {
                InviterId = inviter.Id, InviteeId = invitee.Id
            };

            // Check settings.

            AssertSettings(invitee, category, Frequency.Immediately);
            _memberFriendsCommand.SendInvitation(invitation);
            var email = _emailServer.AssertEmailSent();

            AssertUnsubscribeLink(invitee, category, email.GetHtmlView().GetLinks()[3]);

            // Accept the invitation.

            AssertSettings(inviter, category, Frequency.Immediately);
            _memberFriendsCommand.AcceptInvitation(invitee.Id, invitation);
            email = _emailServer.AssertEmailSent();
            AssertUnsubscribeLink(invitee, category, email.GetHtmlView().GetLinks()[3]);
        }
Beispiel #3
0
        protected void rptInvitations_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            var invitationId = new Guid((string)e.CommandArgument);
            var invitation   = _memberFriendsQuery.GetFriendInvitation(invitationId);

            if (invitation == null)
            {
                LinkMePage.AddError(ValidationErrorMessages.INVALID_INVITATION);
                return;
            }

            var inviter = _membersQuery.GetMember(invitation.InviterId);

            switch (e.CommandName)
            {
            case "AcceptInvitation":
                try
                {
                    _memberFriendsCommand.AcceptInvitation(LoggedInMember.Id, invitation);
                    var successMsg = invitation.GetInvitationAcceptedHtml(inviter);
                    LinkMePage.AddConfirm(successMsg, false);
                }
                catch (UserException ex)
                {
                    LinkMePage.AddError(ex);
                }
                break;

            case "IgnoreInvitation":
                _memberFriendsCommand.RejectInvitation(invitation);
                LinkMePage.AddConfirm(string.Format(ValidationInfoMessages.INVITE_IGNORED, inviter.FullName.MakeNamePossessive()));
                break;
            }

            InitialiseInvitations(); // Re-initialise - just hiding items casuses bug 8772
        }
Beispiel #4
0
        public void TestAcceptedSentRepresentativeInvitation()
        {
            var member = _memberAccountsCommand.CreateTestMember(0);

            var invitee    = _memberAccountsCommand.CreateTestMember(1);
            var invitation = new RepresentativeInvitation {
                InviterId = member.Id, InviteeId = invitee.Id
            };

            _memberFriendsCommand.SendInvitation(invitation);
            _memberFriendsCommand.AcceptInvitation(invitee.Id, invitation);

            LogIn(member);
            GetPage <Invitations>();
            AssertPageDoesNotContain(invitee.FullName);
        }
Beispiel #5
0
        public void TestInvitationEmailLinks()
        {
            // Create some members.

            var inviter = _memberAccountsCommand.CreateTestMember(0);
            var invitee = _memberAccountsCommand.CreateTestMember(1);

            // Create an invitation.

            var invitation = new FriendInvitation {
                InviterId = inviter.Id, InviteeId = invitee.Id
            };

            _memberFriendsCommand.SendInvitation(invitation);

            // Check the default variation.

            var email = _emailServer.AssertEmailSent();
            var links = email.GetHtmlView().GetLinks();

            Assert.AreEqual(4, links.Count);

            var definition = typeof(FriendInvitationEmail).Name;

            AssertLink(definition, invitee, _invitationsUrl, links[0]);
            AssertLink(definition, _contactUsUrl, links[1]);
            AssertLink(definition, invitee, _memberSettingsUrl, links[2]);
            AssertLink(definition, GetUnsubscribeUrl(invitee.Id.ToString("n"), "MemberToMemberNotification"), links[3]);

            // Check the tracking pixel.

            var link = email.GetHtmlView().GetImageLinks().Last();

            AssertTrackingLink(link);

            // Accept the invitation.

            _memberFriendsCommand.AcceptInvitation(invitee.Id, invitation);

            // Check the email.

            email = _emailServer.AssertEmailSent();
            links = email.GetHtmlView().GetLinks();
            Assert.AreEqual(4, links.Count);

            definition = typeof(FriendInvitationConfirmationEmail).Name;

            // Not logged in.

            AssertLink(definition, _contactUsUrl, links[1]);
            AssertLink(definition, inviter, _memberSettingsUrl, links[2]);
            AssertLink(definition, GetUnsubscribeUrl(inviter.Id.ToString("n"), "MemberToMemberNotification"), links[3]);

            // Check the tracking pixel.

            link = email.GetHtmlView().GetImageLinks().Last();
            AssertTrackingLink(link);

            // Invite non-member.

            invitation = new FriendInvitation {
                InviterId = inviter.Id, InviteeEmailAddress = EmailAddress
            };
            _memberFriendsCommand.SendInvitation(invitation);

            // Check the email.

            email = _emailServer.AssertEmailSent();
            links = email.GetHtmlView().GetLinks();
            Assert.AreEqual(2, links.Count);

            definition = typeof(ContactInvitationEmail).Name;

            AssertLink(definition, new ReadOnlyApplicationUrl(true, "~/join", new ReadOnlyQueryString("inviteId", invitation.Id.ToString("n"))), links[0]);
            AssertLink(definition, _contactUsUrl, links[1]);

            // Check the tracking pixel.

            link = email.GetHtmlView().GetImageLinks().Last();
            AssertTrackingLink(link);
        }
Beispiel #6
0
 private void AcceptFriendInvitation(Guid memberId, FriendInvitation friendInvitation)
 {
     _memberFriendsCommand.AcceptInvitation(memberId, friendInvitation);
 }