Esempio n. 1
0
        public void TestReceivedRepresentativeInvitations()
        {
            var member = _memberAccountsCommand.CreateTestMember(0);

            // Create invitations.

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

            _memberFriendsCommand.SendInvitation(invitation1);

            var inviter2    = _memberAccountsCommand.CreateTestMember(2);
            var invitation2 = new RepresentativeInvitation {
                InviterId = inviter2.Id, InviteeId = member.Id
            };

            _memberFriendsCommand.SendInvitation(invitation2);

            var inviter3    = _memberAccountsCommand.CreateTestMember(3);
            var invitation3 = new RepresentativeInvitation {
                InviterId = inviter3.Id, InviteeId = member.Id
            };

            _memberFriendsCommand.SendInvitation(invitation3);

            // Assert all invites appear

            LogIn(member);
            GetPage <Invitations>();
            AssertPageContains(inviter1.FullName);
            AssertPageContains(inviter2.FullName);
            AssertPageContains(inviter3.FullName);
        }
Esempio n. 2
0
        public void TestEmailContents()
        {
            // Create the invitation.

            var inviter = _memberAccountsCommand.CreateTestMember(0);

            inviter.VisibilitySettings.Personal.FirstDegreeVisibility = PersonalVisibility.None;
            _memberAccountsCommand.UpdateMember(inviter);

            var invitee = _memberAccountsCommand.CreateTestMember(1);

            var invitation = new RepresentativeInvitation {
                InviterId = inviter.Id, InviteeId = invitee.Id, Text = MessageText
            };

            _representativeInvitationsCommand.CreateInvitation(invitation);

            var templateEmail = new RepresentativeInvitationEmail(invitee, inviter, invitation, null);

            _emailsCommand.TrySend(templateEmail);

            // Check. The email should have been sent as part of the invitation creation.

            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);
        }
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            var invitations = _memberFriendsQuery.GetFriendInvitations(_member.Id);

            _representativeInvitation = _memberFriendsQuery.GetRepresentativeInvitationByInviter(Member.Id);

            var contactIds = from i in invitations where i.InviteeId != null select i.InviteeId.Value;

            if (_representativeInvitation != null && _representativeInvitation.InviteeId != null)
            {
                contactIds = contactIds.Concat(new[] { _representativeInvitation.InviteeId.Value });
            }

            _views = _memberViewsQuery.GetPersonalViews(_member.Id, contactIds);

            rptSentInvitations.DataSource = invitations;
            rptSentInvitations.DataBind();

            if (invitations.Count == 0)
            {
                rptSentInvitations.Visible  = false;
                phNoSentInvitations.Visible = true;
                phSentInvitations.Visible   = false;
            }

            phSentRepresentativeInvitation.Visible = _representativeInvitation != null;
        }
Esempio n. 4
0
 public static void MapTo(this RepresentativeInvitation invitation, RepresentativeInvitationEntity entity)
 {
     invitation.MapTo(entity.UserToUserRequestEntity);
     entity.inviterId           = invitation.InviterId;
     entity.inviteeId           = invitation.InviteeId;
     entity.inviteeEmailAddress = invitation.InviteeEmailAddress;
 }
Esempio n. 5
0
 void IInvitationsRepository <RepresentativeInvitation> .CreateInvitation(RepresentativeInvitation invitation)
 {
     using (var dc = CreateContext())
     {
         dc.RepresentativeInvitationEntities.InsertOnSubmit(invitation.Map());
         dc.SubmitChanges();
     }
 }
Esempio n. 6
0
        private RepresentativeInvitation SendRepresentativeInvitation(Guid inviterId, Guid inviteeId)
        {
            var invitation = new RepresentativeInvitation {
                InviterId = inviterId, InviteeId = inviteeId
            };

            _memberFriendsCommand.SendInvitation(invitation);
            return(invitation);
        }
Esempio n. 7
0
 public static RepresentativeInvitationEntity Map(this RepresentativeInvitation invitation)
 {
     return(new RepresentativeInvitationEntity
     {
         UserToUserRequestEntity = invitation.MapTo <UserToUserRequestEntity>(),
         inviterId = invitation.InviterId,
         inviteeId = invitation.InviteeId,
         inviteeEmailAddress = invitation.InviteeEmailAddress,
     });
 }
Esempio n. 8
0
 void IInvitationsRepository <RepresentativeInvitation> .UpdateInvitation(RepresentativeInvitation invitation)
 {
     using (var dc = CreateContext())
     {
         var entity = GetInvitationEntity(dc, invitation.Id);
         if (entity != null)
         {
             invitation.MapTo(entity);
             dc.SubmitChanges();
         }
     }
 }
Esempio n. 9
0
        public void TestInvitePendingInvitation()
        {
            var member     = _memberAccountsCommand.CreateTestMember(0);
            var friend     = CreateFriends(member.Id, 1, 1)[0];
            var invitation = new RepresentativeInvitation
            {
                InviterId = member.Id,
                InviteeId = friend.Id
            };

            _memberFriendsCommand.SendInvitation(invitation);

            TestInvitation(member, friend.Id, string.Format(InviteAlreadyExistsFormat, friend.FullName));
        }
Esempio n. 10
0
        public void TestSentRepresentativeInvitationToNonFriend()
        {
            var member = _memberAccountsCommand.CreateTestMember(0);

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

            _memberFriendsCommand.SendInvitation(invitation);

            LogIn(member);
            GetPage <Invitations>();
            AssertPageContains(invitee.FullName);
        }
Esempio n. 11
0
        void IMemberFriendsCommand.SendInvitation(RepresentativeInvitation invitation)
        {
            CheckRepresentativeSendLimit(invitation.InviterId);

            // Send this invitation.

            _representativeInvitationsCommand.SendInvitation(invitation);

            // Fire an event.

            var handlers = InvitationSent;

            if (handlers != null)
            {
                handlers(this, new EventArgs <Invitation>(invitation));
            }
        }
Esempio n. 12
0
        private void OnRepresentativeInvitationSent(ICommunicationUser inviter, RepresentativeInvitation invitation)
        {
            // Currently can only send to other members.

            if (invitation.InviteeId != null)
            {
                // Existing member.

                var to = _membersQuery.GetMember(invitation.InviteeId.Value);
                if (to != null)
                {
                    var activation = GetEmailVerification(to, invitation);
                    var email      = new RepresentativeInvitationEmail(to, inviter, invitation, activation);
                    _emailsCommand.TrySend(email);
                }
            }
        }
Esempio n. 13
0
        public override TemplateEmail GeneratePreview(Community community)
        {
            // Create the invitation.

            var inviter = _memberAccountsCommand.CreateTestMember(0);

            inviter.VisibilitySettings.Personal.FirstDegreeVisibility = PersonalVisibility.None;
            _memberAccountsCommand.UpdateMember(inviter);

            var invitee    = _memberAccountsCommand.CreateTestMember(1, community != null ? community.Id : (Guid?)null);
            var invitation = new RepresentativeInvitation {
                InviterId = inviter.Id, InviteeId = invitee.Id, Text = MessageText
            };

            _representativeInvitationsCommand.CreateInvitation(invitation);

            return(new RepresentativeInvitationEmail(invitee, inviter, invitation, null));
        }
Esempio n. 14
0
        private string GetSendingNotAllowedReason(ICommunicationRecipient invitee, RepresentativeInvitation invitation)
        {
            var name = HtmlUtil.TextToHtml(invitee.FullName);

            switch (invitation.Status)
            {
            case RequestStatus.Accepted:
                return(string.Format(AlreadyRepresentativeFormat, name));

            case RequestStatus.Declined:
                return(string.Format(AlreadyDeclinedFormat, name));

            case RequestStatus.Pending:
                return(string.Format(InviteAlreadyExistsFormat, name, _memberFriendsCommand.GetAllowedSendingTime(invitation)));

            default:
                throw new InvalidOperationException("SendingAllowed should not be false while Status is " + invitation.Status);
            }
        }
Esempio n. 15
0
        void IMemberFriendsCommand.AcceptInvitation(Guid inviteeId, RepresentativeInvitation invitation)
        {
            _representativeInvitationsCommand.AcceptInvitation(inviteeId, invitation);

            // Since the invitee is accepting the invitation make them a representative.

            _representativesCommand.CreateRepresentative(invitation.InviterId, inviteeId);

            // Also, make them friends.

            _networkingCommand.CreateFirstDegreeLink(invitation.InviterId, inviteeId);

            // Fire an event.

            var handlers = InvitationAccepted;

            if (handlers != null)
            {
                handlers(this, new EventArgs <Invitation>(invitation));
            }
        }
Esempio n. 16
0
        private InformationMessage SendInvitation(Guid inviteeId)
        {
            const string method = "Send";

            var invitation = new RepresentativeInvitation
            {
                InviterId = LoggedInMember.Id,
                InviteeId = inviteeId,
                Text      = Request.Params[MessageParameter]
            };

            try
            {
                _memberFriendsCommand.SendInvitation(invitation);
                return(GetInformationMessage("Your invitation was sent successfully.", false));
            }
            catch (Exception ex)
            {
                EventSource.Raise(Event.Error, method, "Exception occurred while sending invitation", ex, new StandardErrorHandler());
                return(GetInformationMessage("There was a problem sending your invitation.", true));
            }
        }
Esempio n. 17
0
        public void TestInvitedRepresentative()
        {
            var member = _memberAccountsCommand.CreateTestMember(0);
            var friend = CreateFriends(member.Id, 1, 1)[0];

            var invitation = new RepresentativeInvitation
            {
                InviterId = member.Id,
                InviteeId = friend.Id
            };

            _memberFriendsCommand.SendInvitation(invitation);

            LogIn(member);
            GetPage <ViewRepresentative>();

            AssertNoRepresentative();

            Assert.IsTrue(_txtName.IsVisible);
            Assert.IsTrue(_txtEmailAddress.IsVisible);
            Assert.IsTrue(_btnSearch.IsVisible);
        }
Esempio n. 18
0
        public void TestNotificationsOff()
        {
            // Create the invitation.

            var inviter = _memberAccountsCommand.CreateTestMember(0);

            inviter.VisibilitySettings.Personal.FirstDegreeVisibility = PersonalVisibility.None;
            _memberAccountsCommand.UpdateMember(inviter);

            var invitee = _memberAccountsCommand.CreateTestMember(1);

            var invitation = new RepresentativeInvitation {
                InviterId = inviter.Id, InviteeId = invitee.Id, Text = MessageText
            };

            _representativeInvitationsCommand.CreateInvitation(invitation);

            // No settings so notification should get through.

            _emailsCommand.TrySend(new RepresentativeInvitationEmail(invitee, inviter, invitation, null));
            _emailServer.AssertEmailSent();

            // Turn off.

            var category = _settingsQuery.GetCategory("MemberToMemberNotification");

            _settingsCommand.SetFrequency(invitee.Id, category.Id, Frequency.Never);
            _emailsCommand.TrySend(new RepresentativeInvitationEmail(invitee, inviter, invitation, null));
            _emailServer.AssertNoEmailSent();

            // Turn on.

            _settingsCommand.SetFrequency(invitee.Id, category.Id, Frequency.Immediately);
            _emailsCommand.TrySend(new RepresentativeInvitationEmail(invitee, inviter, invitation, null));
            _emailServer.AssertEmailSent();
        }
Esempio n. 19
0
 void IMemberFriendsCommand.RejectInvitation(RepresentativeInvitation invitation)
 {
     _representativeInvitationsCommand.RejectInvitation(invitation);
 }
Esempio n. 20
0
 bool IMemberFriendsCommand.CanSendInvitation(RepresentativeInvitation invitation)
 {
     return(CanSend(invitation));
 }
Esempio n. 21
0
 DateTime IMemberFriendsCommand.GetAllowedSendingTime(RepresentativeInvitation invitation)
 {
     return(GetAllowedSendingTime(invitation));
 }
Esempio n. 22
0
 public static string GetInvitationAcceptedHtml(this RepresentativeInvitation invitation, IRegisteredUser inviter)
 {
     return(GetInvitationAcceptedHtml(invitation, inviter, RepresentativeInviteAcceptedFormat));
 }
Esempio n. 23
0
 public RepresentativeInvitationEmail(ICommunicationUser to, ICommunicationUser from, RepresentativeInvitation invitation, EmailVerification emailVerification)
     : base(to, from)
 {
     _invitation        = invitation;
     _emailVerification = emailVerification;
 }