Example #1
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]);
        }
 private static void CheckIsPending(FriendInvitation friendInvitation, long userId)
 {
     if (friendInvitation.Status != InvitationStatus.Pending)
     {
         throw new UserFriendlyException($"You are not allowed to change the responded invitation with id = {friendInvitation.Id}.");
     }
 }
        public void Can_Get_Invitation()
        {
            //Arrange
            using var factory = new SQLiteDbContextFactory();
            //Arrange
            var user1 = new AppUser {
                Id = "id1", UserName = "******", Email = "*****@*****.**"
            };
            var user2 = new AppUser {
                Id = "id2", UserName = "******", Email = "*****@*****.**"
            };
            var user3 = new AppUser {
                Id = "id3", UserName = "******", Email = "*****@*****.**"
            };
            var request1 = new FriendInvitation
            {
                FriendInvitationId = 1,
                Sender             = user1,
                Invited            = user2,
                InvitedEmail       = user2.Email,
                Status             = FriendInvitationStatus.Pending
            };

            var request2 = new FriendInvitation
            {
                FriendInvitationId = 2,
                Sender             = user3,
                InvitedEmail       = "*****@*****.**",
                Status             = FriendInvitationStatus.Pending
            };

            var result = new FriendInvitation();

            //Act
            using (var context = factory.CreateContext())
            {
                context.Users.Add(user1);
                context.Users.Add(user2);
                context.Users.Add(user3);
                context.SaveChanges();
                context.FriendInvitations.Add(request1);
                context.FriendInvitations.Add(request2);
                context.SaveChanges();
                var friendInvitationRepository = new EFFriendInvitationRepository(context);
                result = friendInvitationRepository.GetInvitation(request1.FriendInvitationId);
            }

            using (var context = factory.CreateContext())
            {
                Assert.Equal(3, context.Users.Count());
                Assert.Equal(2, context.FriendInvitations.Count());
                Assert.Equal(request1.FriendInvitationId, result.FriendInvitationId);
                Assert.Equal(FriendInvitationStatus.Pending, result.Status);
                Assert.Equal(request1.Invited.Id, result.Invited.Id);
                Assert.Equal(request1.InvitedId, result.InvitedId);
                Assert.Equal(request1.InvitedEmail, result.InvitedEmail);
                Assert.Equal(request1.Sender.Id, result.Sender.Id);
                Assert.Equal(request1.SenderId, result.SenderId);
            }
        }
Example #4
0
        public void TestInvitations_Others()
        {
            FriendInvitation invitation = new FriendInvitation();

            invitation.Inviter        = profiles[0];
            invitation.Invited        = profiles[1];
            invitation.InvitationType = FriendInvitationType.Invite;
            invitation.CreateDate     = DateTime.UtcNow;
            insertToDatabase(invitation);

            var profile0 = (ProfileDTO)profiles[1].Tag;
            var profile1 = (ProfileDTO)profiles[2].Tag;

            GetProfileInformationCriteria criteria = new GetProfileInformationCriteria();

            criteria.UserId = profiles[0].GlobalId;
            SessionData data = CreateNewSession(profile0, ClientInformation);

            RunServiceMethod(delegate(InternalBodyArchitectService Service)
            {
                var profileInfo = Service.GetProfileInformation(data.Token, criteria);
                Assert.AreEqual(0, profileInfo.Invitations.Count);
            });

            data = CreateNewSession(profile1, ClientInformation);
            RunServiceMethod(delegate(InternalBodyArchitectService Service)
            {
                var profileInfo = Service.GetProfileInformation(data.Token, criteria);
                Assert.AreEqual(0, profileInfo.Invitations.Count);
            });
        }
Example #5
0
        public void TestEmailMultipleCurrentJobs()
        {
            // Create the inviter.

            Member inviter = _memberAccountsCommand.CreateTestMember(InviterEmailAddress, InviterFirstName, InviterLastName);

            inviter.VisibilitySettings.Personal.FirstDegreeVisibility = PersonalVisibility.All;
            IList <Job> jobs = new List <Job>
            {
                new Job
                {
                    Dates       = new PartialDateRange(new PartialDate(1997, 1)),
                    Title       = "Developer",
                    Description = "Developer description",
                    Company     = "Developer employer"
                },
                new Job
                {
                    Dates       = new PartialDateRange(new PartialDate(2005, 1)),
                    Title       = "Tester",
                    Description = "Tester description",
                    Company     = "Tester employer"
                },
            };

            var candidate = _candidatesCommand.GetCandidate(inviter.Id);

            _candidateResumesCommand.CreateResume(candidate, new Resume {
                Jobs = jobs
            });

            // Send the invitation.

            var invitation = new FriendInvitation {
                InviterId = inviter.Id, InviteeEmailAddress = To, Text = MessageText, DonationRequestId = null
            };

            _networkingInvitationsCommand.CreateInvitation(invitation);

            var templateEmail = new ContactInvitationEmail(inviter, invitation, null, null, GetCurrentJobs(inviter.Id), 0);

            _emailsCommand.TrySend(templateEmail);

            var email = _emailServer.AssertEmailSent();

            email.AssertAddresses(inviter, Return, invitation.InviteeEmailAddress);
            email.AssertSubject(GetSubject());
            email.AssertHtmlViewChecks();
            email.AssertHtmlView(GetBody(templateEmail, new Member {
                EmailAddresses = new List <EmailAddress> {
                    new EmailAddress {
                        Address = invitation.InviteeEmailAddress
                    }
                }
            }, GetContent(templateEmail, inviter, invitation, null, null)));
            email.AssertHtmlViewContains("Tester");
            email.AssertHtmlViewDoesNotContain("Developer");
            email.AssertNoAttachments();
            AssertCompatibleAddresses(email);
        }
        public void DeleteInvitation(int id)
        {
            FriendInvitation invitation = _db.FriendInvitations.Find(id);

            _db.FriendInvitations.Remove(invitation);
            _db.SaveChanges();
        }
Example #7
0
        public static void Serialize(Stream stream, Invitation instance)
        {
            BinaryWriter binaryWriter = new BinaryWriter(stream);

            stream.WriteByte(9);
            binaryWriter.Write(instance.Id);
            if (instance.InviterIdentity == null)
            {
                throw new ArgumentNullException("InviterIdentity", "Required by proto specification.");
            }
            stream.WriteByte(18);
            ProtocolParser.WriteUInt32(stream, instance.InviterIdentity.GetSerializedSize());
            Identity.Serialize(stream, instance.InviterIdentity);
            if (instance.InviteeIdentity == null)
            {
                throw new ArgumentNullException("InviteeIdentity", "Required by proto specification.");
            }
            stream.WriteByte(26);
            ProtocolParser.WriteUInt32(stream, instance.InviteeIdentity.GetSerializedSize());
            Identity.Serialize(stream, instance.InviteeIdentity);
            if (instance.HasInviterName)
            {
                stream.WriteByte(34);
                ProtocolParser.WriteBytes(stream, Encoding.UTF8.GetBytes(instance.InviterName));
            }
            if (instance.HasInviteeName)
            {
                stream.WriteByte(42);
                ProtocolParser.WriteBytes(stream, Encoding.UTF8.GetBytes(instance.InviteeName));
            }
            if (instance.HasInvitationMessage)
            {
                stream.WriteByte(50);
                ProtocolParser.WriteBytes(stream, Encoding.UTF8.GetBytes(instance.InvitationMessage));
            }
            if (instance.HasCreationTime)
            {
                stream.WriteByte(56);
                ProtocolParser.WriteUInt64(stream, instance.CreationTime);
            }
            if (instance.HasExpirationTime)
            {
                stream.WriteByte(64);
                ProtocolParser.WriteUInt64(stream, instance.ExpirationTime);
            }
            if (instance.HasChannelInvitation)
            {
                stream.WriteByte(202);
                stream.WriteByte(6);
                ProtocolParser.WriteUInt32(stream, instance.ChannelInvitation.GetSerializedSize());
                ChannelInvitation.Serialize(stream, instance.ChannelInvitation);
            }
            if (instance.HasFriendInvite)
            {
                stream.WriteByte(186);
                stream.WriteByte(6);
                ProtocolParser.WriteUInt32(stream, instance.FriendInvite.GetSerializedSize());
                FriendInvitation.Serialize(stream, instance.FriendInvite);
            }
        }
Example #8
0
        public void TestReceivedFriendInvitations()
        {
            var member = _memberAccountsCommand.CreateTestMember(0);

            // Create invitations.

            var inviter1    = _memberAccountsCommand.CreateTestMember(1);
            var invitation1 = new FriendInvitation {
                InviterId = inviter1.Id, InviteeEmailAddress = member.GetBestEmailAddress().Address
            };

            _memberFriendsCommand.SendInvitation(invitation1);

            var inviter2    = _memberAccountsCommand.CreateTestMember(2);
            var invitation2 = new FriendInvitation {
                InviterId = inviter2.Id, InviteeEmailAddress = member.GetBestEmailAddress().Address
            };

            _memberFriendsCommand.SendInvitation(invitation2);

            var inviter3    = _memberAccountsCommand.CreateTestMember(3);
            var invitation3 = new FriendInvitation {
                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);
        }
 private static void CheckIsInvitee(FriendInvitation friendInvitation, long userId)
 {
     if (userId != friendInvitation.InviteeId)
     {
         throw new UserFriendlyException($"You are not allowed to change this invitation with id = {friendInvitation.Id}.");
     }
 }
Example #10
0
        private void TestToMember(CommunityTestData fromData, bool isFromDeleted, CommunityTestData toData, bool isToDeleted, string expectedSnippet, string expectedHeaderSnippet)
        {
            var inviter = CreateInviter(fromData, isFromDeleted);

            // Invite member.

            var invitee = _memberAccountsCommand.CreateTestMember(1);

            if (toData != null)
            {
                var community = toData.CreateTestCommunity(_communitiesCommand, _verticalsCommand, _contentEngine);

                if (isToDeleted)
                {
                    var vertical = _verticalsCommand.GetVertical(community);
                    vertical.IsDeleted = true;
                    _verticalsCommand.UpdateVertical(vertical);
                }

                _memberAffiliationsCommand.SetAffiliation(invitee.Id, community.Id);
            }

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

            _memberFriendsCommand.SendInvitation(invitation);

            // Check.

            var email = _emailServer.AssertEmailSent();

            email.AssertAddresses(inviter, Return, invitee);
            AssertEmail(email, expectedSnippet, expectedHeaderSnippet);
        }
Example #11
0
        void IMemberFriendsCommand.SendInvitation(FriendInvitation invitation)
        {
            CheckNetworkingSendLimit(invitation.InviterId);

            // Send this invitation.

            _networkingInvitationsCommand.SendInvitation(invitation);

            // Create the donation for the invitation.

            if (invitation.DonationRequestId != null)
            {
                _donationsCommand.CreateDonation(new Donation {
                    Id = invitation.Id, RequestId = invitation.DonationRequestId.Value
                });
            }

            // Fire an event.

            var handlers = InvitationSent;

            if (handlers != null)
            {
                handlers(this, new EventArgs <Invitation>(invitation));
            }
        }
Example #12
0
        public void TestEmailContentsNoMessageTextNoDonation()
        {
            // Create the invitation.

            Member inviter = _memberAccountsCommand.CreateTestMember(InviterEmailAddress, InviterFirstName, InviterLastName);

            // Create the invitation.

            var invitation = new FriendInvitation {
                InviterId = inviter.Id, InviteeEmailAddress = To, Text = null, DonationRequestId = null
            };

            _networkingInvitationsCommand.CreateInvitation(invitation);

            var templateEmail = new ContactInvitationEmail(inviter, invitation, null, null, GetCurrentJobs(inviter.Id), 0);

            _emailsCommand.TrySend(templateEmail);

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

            var email = _emailServer.AssertEmailSent();

            email.AssertAddresses(inviter, Return, invitation.InviteeEmailAddress);
            email.AssertSubject(GetSubject());
            email.AssertHtmlViewChecks();
            email.AssertHtmlView(GetBody(templateEmail, new Member {
                EmailAddresses = new List <EmailAddress> {
                    new EmailAddress {
                        Address = To
                    }
                }
            }, GetContent(templateEmail, inviter, invitation, null, null)));
            email.AssertNoAttachments();
            AssertCompatibleAddresses(email);
        }
Example #13
0
        public void ConfirmFriendRequest()
        {
            var invitedAccount = userSession.CurrentUser;

            if (!string.IsNullOrEmpty(sessionWrapper.FriendshipRequest))
            {
                FriendInvitation friendInvitation = friendInvitationDAO.FetchByGUID(new Guid(sessionWrapper.FriendshipRequest));
                {
                    if (friendInvitation != null)
                    {
                        if (sessionWrapper.CurrentUser != null)
                        {
                            //RedirectToAction("FriendConfirmationPage", "Friend");
                            accountDAO.FetchById(invitedAccount.accountID);
                            CreateFriendFromFriendInvitation(friendInvitation.GUID, invitedAccount);
                            TempData["successMessage"] = "You are now friends";
                        }
                        else
                        {
                            TempData["errorMessage"] = "There was an error";
                        }
                    }
                }
            }
        }
Example #14
0
        public void TestEmailContentsRequiresEncodingMessageText()
        {
            // 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 FriendInvitation {
                InviterId = inviter.Id, InviteeId = invitee.Id, Text = RequiresEncodingMessageText, DonationRequestId = null
            };

            _networkingInvitationsCommand.CreateInvitation(invitation);

            var templateEmail = new FriendInvitationEmail(invitee, inviter, invitation, null, GetCurrentJobs(inviter.Id), 0);

            _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);
        }
Example #15
0
        //update an invitation
        public void UpdateInvitation(FriendInvitation invitation, Account invitationTo)
        {
            FriendInvitation originalInvite = _db.FriendInvitations.Find(invitation.friendInvitationID);

            originalInvite.becameAccountID = invitationTo.accountID;

            _db.SaveChanges();
        }
Example #16
0
 public FriendInvitationEmail(ICommunicationUser to, ICommunicationUser from, FriendInvitation invitation, EmailVerification emailVerification, IList <Job> currentJobs, int contactCount)
     : base(to, from)
 {
     _invitation        = invitation;
     _emailVerification = emailVerification;
     _currentJobs       = currentJobs;
     _contactCount      = contactCount;
 }
Example #17
0
        public void DeleteFriendFromFriendInvitation(Guid InvitationKey, Account InvitationTo)
        {
            FriendInvitation friendInvitation = _friendInvitationRepository.GetFriendInvitationByGUID(InvitationKey);

            friendInvitation.BecameAccoutnID = -1;
            _friendInvitationRepository.SaveFriendInvitation(friendInvitation);
            _friendInvitationRepository.CleanUpFriendInvitationsForThisEmail(friendInvitation);
        }
Example #18
0
        private FriendInvitation SendFriendInvitation(Guid inviterId, Guid inviteeId)
        {
            var invitation = new FriendInvitation {
                InviterId = inviterId, InviteeId = inviteeId
            };

            _memberFriendsCommand.SendInvitation(invitation);
            return(invitation);
        }
Example #19
0
        public void Init(IRegister View)
        {
            _view = View;

            if (!string.IsNullOrEmpty(_webContext.FriendshipRequest))
            {
                friendInvitation = _friendInvitationRepository.GetFriendInvitationByGUID(new Guid(_webContext.FriendshipRequest));
                _view.LoadEmailAddressFromFriendInvitation(friendInvitation.Email);
            }
        }
Example #20
0
File: Email.cs Project: ngocpq/MHX2
        //
        public void Send_Invitations(Account sender, Account invite)
        {
            _friendInvitationRepository = new SPKTCore.Core.DataAccess.Impl.FriendInvitationRepository();
            FriendInvitation friendInvitation = new FriendInvitation();

            friendInvitation.AccountID       = sender.AccountID;
            friendInvitation.Email           = invite.Email;
            friendInvitation.GUID            = Guid.NewGuid();
            friendInvitation.BecameAccoutnID = invite.AccountID;
            _friendInvitationRepository.SaveFriendInvitation(friendInvitation);
        }
Example #21
0
File: Email.cs Project: ngocpq/MHX2
        //moi
        public void SendInvitations1(Account sender, string ToEmailArray, string ms)
        {
            _friendInvitationRepository = new SPKTCore.Core.DataAccess.Impl.FriendInvitationRepository();
            FriendInvitation friendInvitation = new FriendInvitation();

            friendInvitation.AccountID       = sender.AccountID;
            friendInvitation.Email           = ToEmailArray;
            friendInvitation.GUID            = Guid.NewGuid();
            friendInvitation.BecameAccoutnID = 0;
            _friendInvitationRepository.SaveFriendInvitation(friendInvitation);
            SendFriendInvitation(ToEmailArray, sender.UserName, friendInvitation.GUID.ToString(), ms);
        }
Example #22
0
        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);
                }
            }
        }
Example #23
0
        public void TestSentFriendInvitations()
        {
            var member = _memberAccountsCommand.CreateTestMember(0);

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

            _memberFriendsCommand.SendInvitation(invitation);

            LogIn(member);
            GetPage <Invitations>();
            AssertPageContains(invitee.FullName);
        }
Example #24
0
        public void TestInviteInvitedContact()
        {
            var invitation = new FriendInvitation {
                InviterId = _member.Id, InviteeId = _invitedContact.Id
            };

            _networkingInvitationsCommand.CreateInvitation(invitation);
            _networkingInvitationsCommand.SendInvitation(invitation);
            Assert.IsTrue(invitation.Status == RequestStatus.Pending && _memberFriendsCommand.GetAllowedSendingTime(invitation) > DateTime.Now);

            RequestInvitation(_invitedContact.Id);

            AssertPageContains(string.Format(InviteAlreadyExistsFormat, _invitedContact.FullName,
                                             _memberFriendsCommand.GetAllowedSendingTime(invitation)));
        }
Example #25
0
        public static FriendInvitationDTO ConvertFriendInvitation(Profile profileDb, FriendInvitation invitation)
        {
            FriendInvitationDTO dto = Mapper.Map <FriendInvitation, FriendInvitationDTO>(invitation);

            //we don't need to send the same user who invoke this method
            if (invitation.Invited == profileDb)
            {
                dto.Invited = null;
            }
            else
            {
                dto.Inviter = null;
            }
            return(dto);
        }
Example #26
0
        public void CreateFriendFromFriendInvitation(Guid InvitationKey, Account InvitationTo)
        {
            FriendInvitation friendInvitation = _friendInvitationRepository.GetFriendInvitationByGUID(InvitationKey);

            friendInvitation.BecameAccoutnID = InvitationTo.AccountID;
            _friendInvitationRepository.SaveFriendInvitation(friendInvitation);
            _friendInvitationRepository.CleanUpFriendInvitationsForThisEmail(friendInvitation);

            Friend friend = new Friend();

            friend.AccountID         = friendInvitation.AccountID;
            friend.MyFriendAccountID = InvitationTo.AccountID;
            _friendRepository.SaveFriend(friend);

            //_friendRepository.GetFriend(InvitationTo);
        }
Example #27
0
 public void SaveFriendInvitation(FriendInvitation friendInvitation)
 {
     using (SPKTDataContext dc = conn.GetContext())
     {
         if (friendInvitation.FriendInvitationID > 0)
         {
             dc.FriendInvitations.Attach(friendInvitation, true);
         }
         else
         {
             friendInvitation.CreateDate = DateTime.Now;
             dc.FriendInvitations.InsertOnSubmit(friendInvitation);
         }
         dc.SubmitChanges();
     }
 }
Example #28
0
 public void CleanUpFriendInvitationsForThisEmail(FriendInvitation friendInvitation)
 {
     using (SPKTDataContext dc = conn.GetContext())
     {
         IEnumerable <FriendInvitation> friendInvitations = from fi in dc.FriendInvitations
                                                            where fi.Email == friendInvitation.Email &&
                                                            fi.BecameAccoutnID == 0 &&
                                                            fi.AccountID == friendInvitation.AccountID
                                                            select fi;
         foreach (FriendInvitation invitation in friendInvitations)
         {
             dc.FriendInvitations.DeleteOnSubmit(invitation);
         }
         dc.SubmitChanges();
     }
 }
Example #29
0
        public void CreateFriendFromFriendInvitation(Guid invitationKey, Account invitationTo)
        {
            FriendInvitation friendInvitation = friendInvitationDAO.FetchByGUID(invitationKey);

            //friendInvitation.becameAccountID = invitationTo.accountID;
            friendInvitationDAO.UpdateInvitation(friendInvitation, invitationTo);

            //create friendship
            Friend friend = new Friend();

            friend.accountID          = friendInvitation.accountID;
            friend.myFriendsAccountID = invitationTo.accountID;
            friendDAO.SaveFriend(friend);

            Account invitationFrom = accountDAO.FetchById(friendInvitation.accountID);
        }
Example #30
0
        private FriendInvitation GetInvitation(FriendInvitation invitation)
        {
            if (invitation == null)
            {
                return(null);
            }

            // Need to get the donation.

            var donation = _donationsQuery.GetDonation(invitation.Id);

            if (donation != null)
            {
                invitation.DonationRequestId = donation.RequestId;
            }
            return(invitation);
        }
Example #31
0
        public string SendInvitations(Account sender, string ToEmailArray, string Message)
        {
            string resultMessage = Message;
            foreach (string s in ToEmailArray.Split(new char[] { ',', ';' }))
            {
                FriendInvitation friendInvitation = new FriendInvitation();
                friendInvitation.AccountID = sender.AccountID;
                friendInvitation.Email = s;
                friendInvitation.GUID = Guid.NewGuid();
                friendInvitation.BecameAccountID = 0;
                FriendInvitation.SaveFriendInvitation(friendInvitation);

                //add alert to existing users alerts
                Account account = Account.GetAccountByEmail(s);
                if (account != null)
                {
                    _alertService.AddFriendRequestAlert(_userSession.CurrentUser, account, friendInvitation.GUID,
                                                        Message);
                }

                //CHAPTER 6
                //TODO: MESSAGING - if this email is already in our system add a message through messaging system
                //if(email in system)
                //{
                //      add message to messaging system
                //}
                //else
                //{
                //      send email
                SendFriendInvitation(s, sender.FirstName, sender.LastName, friendInvitation.GUID.ToString(), Message);
                //send into mailbox
                Message = sender.FirstName + " " + sender.LastName +
          "Muốn kết bạn với bạn!<HR><a href=\"" + _configuration.RootURL +
          "Friends/ConfirmFriendInSite.aspx?InvitationKey=" + friendInvitation.GUID.ToString() + "\">" + _configuration.RootURL +
          "Friends/ConfirmFriendInSite.aspx?InvitationKey=" + friendInvitation.GUID.ToString() + "</a><HR>" + Message;
                Messages m = new Messages();
                m.Body = Message;
                m.Subject = "Thư mời kết bạn";
                m.CreateDate = DateTime.Now;
                m.MessageTypeID = (int)MessageTypes.FriendRequest;
                m.SentByAccountID = _userSession.CurrentUser.AccountID;
                m.MessageID = 0;
                m.Save();

                Int64 messageID = m.MessageID;

                MessageRecipient sendermr = new MessageRecipient();
                sendermr.AccountID = _userSession.CurrentUser.AccountID;
                sendermr.MessageFolderID = (int)MessageFolders.Sent;
                sendermr.MessageRecipientTypeID = (int)MessageRecipientTypes.TO;
                sendermr.MessageID = messageID;
                sendermr.MessageStatusTypeID = (int)MessageStatusTypes.Unread;
                sendermr.MessageRecipientID = 0;
                sendermr.Save();

                Account toAccount = Account.GetAccountByEmail(s);
                if (toAccount != null)
                {
                    MessageRecipient mr = new MessageRecipient();
                    mr.AccountID = toAccount.AccountID;
                    mr.MessageFolderID = (int)MessageFolders.Inbox;
                    mr.MessageID = messageID;
                    mr.MessageRecipientTypeID = (int)MessageRecipientTypes.TO;
                    mr.MessageRecipientID = 0;
                    mr.MessageStatusTypeID = 1;
                    mr.Save();
                    //_email.SendNewMessageNotification(toAccount, toAccount.Email);
                }
                //}
                resultMessage += "• " + s + "<BR>";
            }
            return resultMessage;
        }
Example #32
0
    private void Populate_ViewFriendsGrid(FriendInvitation[] data)
    {
        System.Web.UI.WebControls.BoundColumn colBound;

        colBound = new System.Web.UI.WebControls.BoundColumn();
        colBound.DataField = "CHECKL";
        colBound.HeaderText = "<input type=\"checkbox\" onclick=\"checkAll(this);\" name=\"FriendsMasterCB\" value=\"" + "ID" + "\" runat=\"Server\"/>";
        colBound.HeaderStyle.CssClass = "friendsHeader";
        colBound.HeaderStyle.Width = Unit.Percentage(1);
        colBound.Initialize();
        colBound.ItemStyle.Wrap = false;
        colBound.ItemStyle.VerticalAlign = VerticalAlign.Middle;
        colBound.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
        FriendGrid.Columns.Add(colBound);

        colBound = new System.Web.UI.WebControls.BoundColumn();
        colBound.DataField = "COL_AVATAR";
        colBound.HeaderText = this.GetMessage("lbl avatar");
        colBound.HeaderStyle.CssClass = "friendsHeader";
        colBound.ItemStyle.Wrap = false;
        colBound.ItemStyle.VerticalAlign = VerticalAlign.Middle;
        FriendGrid.Columns.Add(colBound);

        colBound = new System.Web.UI.WebControls.BoundColumn();
        colBound.DataField = "COL_DISPLAYNAME";
        colBound.HeaderText = this.GetMessage("generic display name");
        colBound.HeaderStyle.CssClass = "friendsHeader";
        colBound.HeaderStyle.Width = Unit.Percentage(25);
        colBound.ItemStyle.Wrap = false;
        colBound.ItemStyle.VerticalAlign = VerticalAlign.Middle;
        FriendGrid.Columns.Add(colBound);

        colBound = new System.Web.UI.WebControls.BoundColumn();
        colBound.DataField = "COL_FIRSTNAME";
        colBound.HeaderText = this.GetMessage("generic first name");
        colBound.HeaderStyle.CssClass = "friendsHeader";
        colBound.HeaderStyle.Width = Unit.Percentage(25);
        colBound.ItemStyle.VerticalAlign = VerticalAlign.Middle;
        colBound.ItemStyle.Wrap = false;
        FriendGrid.Columns.Add(colBound);

        colBound = new System.Web.UI.WebControls.BoundColumn();
        colBound.DataField = "COL_LASTNAME";
        colBound.HeaderText = this.GetMessage("generic last name");
        colBound.HeaderStyle.CssClass = "friendsHeader";
        colBound.HeaderStyle.Width = Unit.Percentage(25);
        colBound.ItemStyle.VerticalAlign = VerticalAlign.Middle;
        colBound.ItemStyle.Wrap = false;
        FriendGrid.Columns.Add(colBound);

        colBound = new System.Web.UI.WebControls.BoundColumn();
        colBound.DataField = "COL_SENTDATE";
        colBound.HeaderText = this.GetMessage("lbl generic date");
        colBound.HeaderStyle.CssClass = "friendsHeader";
        colBound.HeaderStyle.Width = Unit.Percentage(10);
        colBound.ItemStyle.VerticalAlign = VerticalAlign.Middle;
        colBound.ItemStyle.Wrap = false;
        FriendGrid.Columns.Add(colBound);

        PageSettings();

        DataTable dt = new DataTable();
        DataRow dr;
        dt.Columns.Add(new DataColumn("CHECKL", typeof(string)));
        dt.Columns.Add(new DataColumn("COL_AVATAR", typeof(string)));
        dt.Columns.Add(new DataColumn("COL_DISPLAYNAME", typeof(string)));
        dt.Columns.Add(new DataColumn("COL_FIRSTNAME", typeof(string)));
        dt.Columns.Add(new DataColumn("COL_LASTNAME", typeof(string)));
        dt.Columns.Add(new DataColumn("COL_SENTDATE", typeof(string)));
        int i = 0;

        if (!(data == null))
        {
            for (i = 0; i <= data.Length - 1; i++)
            {
                dr = dt.NewRow();
                dr["CHECKL"] = "<input type=\"checkbox\" name=\"req_selected_users\" value=\"" + ((data[i].Recipient.IsUser) ? (data[i].Recipient.UserId.ToString()) : (data[i].Recipient.Email)) + "\" >";
                dr["COL_AVATAR"] = "<img class=\"friendsAvatar\" align=\"left\" src=\"" + ((data[i].Recipient.Avatar != "") ? (AppendSitePathIfNone(data[i].Recipient.Avatar)) : this.m_refContentApi.AppImgPath + "user.gif") + "\" width=\"32\" height=\"32\"/>";
                if (data[i].Recipient.IsUser)
                {
                    dr["COL_DISPLAYNAME"] = data[i].Recipient.DisplayName;
                    dr["COL_FIRSTNAME"] = data[i].Recipient.FirstName;
                    dr["COL_LASTNAME"] = data[i].Recipient.LastName;
                }
                else
                {
                    dr["COL_DISPLAYNAME"] = data[i].Recipient.Email;
                    dr["COL_FIRSTNAME"] = "";
                    dr["COL_LASTNAME"] = "";
                }

                dr["COL_SENTDATE"] = data[i].RequestDate.ToString("g");

                dt.Rows.Add(dr);
            }
        }

        DataView dv = new DataView(dt);
        FriendGrid.DataSource = dv;
        FriendGrid.DataBind();
    }