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); }
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; }
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; }
void IInvitationsRepository <RepresentativeInvitation> .CreateInvitation(RepresentativeInvitation invitation) { using (var dc = CreateContext()) { dc.RepresentativeInvitationEntities.InsertOnSubmit(invitation.Map()); dc.SubmitChanges(); } }
private RepresentativeInvitation SendRepresentativeInvitation(Guid inviterId, Guid inviteeId) { var invitation = new RepresentativeInvitation { InviterId = inviterId, InviteeId = inviteeId }; _memberFriendsCommand.SendInvitation(invitation); return(invitation); }
public static RepresentativeInvitationEntity Map(this RepresentativeInvitation invitation) { return(new RepresentativeInvitationEntity { UserToUserRequestEntity = invitation.MapTo <UserToUserRequestEntity>(), inviterId = invitation.InviterId, inviteeId = invitation.InviteeId, inviteeEmailAddress = invitation.InviteeEmailAddress, }); }
void IInvitationsRepository <RepresentativeInvitation> .UpdateInvitation(RepresentativeInvitation invitation) { using (var dc = CreateContext()) { var entity = GetInvitationEntity(dc, invitation.Id); if (entity != null) { invitation.MapTo(entity); dc.SubmitChanges(); } } }
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)); }
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); }
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)); } }
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); } } }
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)); }
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); } }
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)); } }
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)); } }
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); }
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(); }
void IMemberFriendsCommand.RejectInvitation(RepresentativeInvitation invitation) { _representativeInvitationsCommand.RejectInvitation(invitation); }
bool IMemberFriendsCommand.CanSendInvitation(RepresentativeInvitation invitation) { return(CanSend(invitation)); }
DateTime IMemberFriendsCommand.GetAllowedSendingTime(RepresentativeInvitation invitation) { return(GetAllowedSendingTime(invitation)); }
public static string GetInvitationAcceptedHtml(this RepresentativeInvitation invitation, IRegisteredUser inviter) { return(GetInvitationAcceptedHtml(invitation, inviter, RepresentativeInviteAcceptedFormat)); }
public RepresentativeInvitationEmail(ICommunicationUser to, ICommunicationUser from, RepresentativeInvitation invitation, EmailVerification emailVerification) : base(to, from) { _invitation = invitation; _emailVerification = emailVerification; }