Example #1
0
        public void TestTask()
        {
            int daysToExpire = ApplicationContext.Instance.GetIntProperty(
                ApplicationContext.EMAIL_ACTIVATION_EXPIRY_DAYS);

            DateTime dayExpired = DateTime.Now.Date.Subtract(TimeSpan.FromDays(daysToExpire));

            var    random          = new Random();
            string activationCode1 = random.Next().ToString();
            string activationCode2 = random.Next().ToString();
            string activationCode3 = random.Next().ToString();

            Member networker1 = _memberAccountsCommand.CreateTestMember("*****@*****.**");
            Member networker2 = _memberAccountsCommand.CreateTestMember("*****@*****.**");
            Member networker3 = _memberAccountsCommand.CreateTestMember("*****@*****.**");

            networker1.IsActivated = false;
            networker2.IsActivated = false;
            networker3.IsActivated = false;
            _memberAccountsCommand.UpdateMember(networker1);
            _memberAccountsCommand.UpdateMember(networker2);
            _memberAccountsCommand.UpdateMember(networker3);

            var expiredActivationMinusOneDay = new EmailVerification {
                UserId = networker1.Id, VerificationCode = activationCode1, CreatedTime = dayExpired.AddDays(-1), EmailAddress = networker1.GetBestEmailAddress().Address
            };
            var expiredActivation = new EmailVerification {
                UserId = networker2.Id, VerificationCode = activationCode2, CreatedTime = dayExpired, EmailAddress = networker2.GetBestEmailAddress().Address
            };
            var expiredActivationPlusOneDay = new EmailVerification {
                UserId = networker3.Id, VerificationCode = activationCode3, CreatedTime = dayExpired.AddDays(1), EmailAddress = networker3.GetBestEmailAddress().Address
            };

            _emailVerificationsCommand.CreateEmailVerification(expiredActivationMinusOneDay);
            _emailVerificationsCommand.CreateEmailVerification(expiredActivation);
            _emailVerificationsCommand.CreateEmailVerification(expiredActivationPlusOneDay);

            var expiryTask = new ExpireInactiveActivationsTask();

            expiryTask.ExecuteTask();

            var expiredActivation1 = _emailVerificationsQuery.GetEmailVerification(networker1.Id, networker1.GetBestEmailAddress().Address);
            var expiredActivation2 = _emailVerificationsQuery.GetEmailVerification(networker2.Id, networker2.GetBestEmailAddress().Address);
            var expiredActivation3 = _emailVerificationsQuery.GetEmailVerification(networker3.Id, networker3.GetBestEmailAddress().Address);

            Assert.IsNull(expiredActivation1);
            Assert.IsNull(expiredActivation2);
            Assert.IsNotNull(expiredActivation3);
        }
Example #2
0
        public static string GetDeveloperActivationLink(IMember member)
        {
            if (member == null)
            {
                throw new ArgumentNullException("member");
            }

            if (!ApplicationContext.Instance.GetBoolProperty(ApplicationContext.ENABLE_DEVELOPER_SHORTCUTS))
            {
                return("");
            }

            var activation = EmailVerificationQuery.GetEmailVerification(member.Id, member.GetBestEmailAddress().Address);

            if (activation == null)
            {
                return("");
            }

            var url = ActivationUrl.AsNonReadOnly();

            url.QueryString["activationCode"] = activation.VerificationCode;

            return("<div class='debug-note'><strong>DEV ONLY:</strong> <a id=\"dodgyActivateLink\" href=\"" +
                   url + "\">Activate this user</a></div>");
        }
Example #3
0
        public void TestGetEmailVerificationById()
        {
            var member = _membersCommand.CreateTestMember(1);

            // Create.

            var expectedEmailVerification = new EmailVerification {
                EmailAddress = member.GetBestEmailAddress().Address, UserId = member.Id
            };

            _emailVerificationsCommand.CreateEmailVerification(expectedEmailVerification);

            // Get.

            var emailVerification = _emailVerificationsQuery.GetEmailVerification(member.Id, member.GetBestEmailAddress().Address);

            AssertAreEqual(expectedEmailVerification, emailVerification);
        }
Example #4
0
        public ActionResult Reengagement(CommunicationsContext context)
        {
            var member = _membersQuery.GetMember(context.UserId);

            if (member == null)
            {
                return(HttpNotFound());
            }

            var candidate = _candidatesQuery.GetCandidate(context.UserId);
            var resume    = candidate.ResumeId == null ? null : _resumesQuery.GetResume(candidate.ResumeId.Value);

            var model = CreateModel <ReengagementModel>(context);

            model.Member    = member;
            model.Candidate = candidate;

            if (!member.IsActivated)
            {
                // Create a new activation if needed.

                var emailAddress      = member.GetBestEmailAddress().Address;
                var emailVerification = _emailVerificationsQuery.GetEmailVerification(member.Id, emailAddress);
                if (emailVerification == null)
                {
                    emailVerification = new EmailVerification {
                        EmailAddress = emailAddress, UserId = member.Id
                    };
                    _emailVerificationsCommand.CreateEmailVerification(emailVerification);
                }

                model.ActivationCode = emailVerification.VerificationCode;
            }

            model.ProfilePercentComplete = _memberStatusQuery.GetPercentComplete(member, candidate, resume);
            var execution = _executeJobAdSearchCommand.SearchSuggested(member, null, new Range(0, MaxSuggestedJobCount));

            var jobAds = _jobAdsQuery.GetJobAds <JobAd>(execution.Results.JobAdIds).ToDictionary(j => j.Id, j => j);

            model.SuggestedJobs = (from i in execution.Results.JobAdIds
                                   where jobAds.ContainsKey(i)
                                   select jobAds[i]).ToList();

            model.JobSearch = GetJobSearchModel(member, candidate);

            var lastWeek = new DateTimeRange(DateTime.Today.AddDays(-7), DateTime.Today);

            model.TotalContactsLastWeek = _employerMemberAccessReportsQuery.GetMemberAccesses(lastWeek);

            var lastMonth = new DateTimeRange(DateTime.Today.AddMonths(-1), DateTime.Today);

            model.TotalContactsLastMonth = _employerMemberAccessReportsQuery.GetMemberAccesses(lastMonth);
            model.TotalViewed            = _employerMemberAccessReportsQuery.GetMemberViewings(context.UserId, lastMonth);

            return(View(model));
        }
        private Guid?Activate(string verificationCode)
        {
            // Try to find the corresponding email verification.

            var emailVerification = _emailVerificationsQuery.GetEmailVerification(verificationCode);

            if (emailVerification == null)
            {
                return(null);
            }

            // Make sure the email verification still corresponds to this user.

            var member = _membersQuery.GetMember(emailVerification.UserId);

            if (member == null)
            {
                return(null);
            }

            return(Activate(member, emailVerification));
        }
Example #6
0
        public void SendEmail(Guid userId, int emailSeqNo)
        {
            var member = _membersQuery.GetMember(userId);

            // Only send if still not activated.

            if (!member.IsActivated)
            {
                var emailVerification = _emailVerificationsQuery.GetEmailVerification(userId, member.GetBestEmailAddress().Address);
                var email             = new ActivationEmail(member, emailVerification);
                _emailsCommand.TrySend(email);
            }
        }
Example #7
0
        public void TestNewMember()
        {
            var query = new MemberSearchQuery {
                Name = FirstName.CombineLastName(LastName), IncludeSimilarNames = false
            };

            // Do some searches.

            var results = _service1.Search(null, null, query);

            Assert.AreEqual(0, results.MemberIds.Count);

            results = _service2.Search(null, null, query);
            Assert.AreEqual(0, results.MemberIds.Count);

            // Add a member.

            var testResume   = TestResume.Complete;
            var parsedResume = testResume.GetParsedResume();

            var member    = CreateMember(FirstName, LastName, parsedResume);
            var candidate = CreateCandidate();

            // Join.

            Get(_joinUrl);
            UploadResume(testResume);
            SubmitPersonalDetails(member, candidate);
            Browser.Submit(_jobDetailsFormId);
            member = _membersQuery.GetMember(parsedResume.EmailAddresses[0].Address);
            var activationCode = _emailVerificationsQuery.GetEmailVerification(member.Id, parsedResume.EmailAddresses[0].Address).VerificationCode;

            Get(GetActivationUrl(activationCode));

            // Do some searches again.

            results = _service1.Search(null, null, query);
            Assert.AreEqual(1, results.MemberIds.Count);
            Assert.AreEqual(member.Id, results.MemberIds[0]);

            // Wait for the polling to kick in.

            Thread.Sleep(3 * MonitorInterval * 1000);
            results = _service2.Search(null, null, query);
            Assert.AreEqual(1, results.MemberIds.Count);
            Assert.AreEqual(member.Id, results.MemberIds[0]);
        }
Example #8
0
        private EmailVerification GetEmailVerification(IMember to, Invitation invitation)
        {
            EmailVerification emailVerification = null;

            if (!to.IsActivated)
            {
                // Find an existing activation or create a new one.

                emailVerification = _emailVerificationsQuery.GetEmailVerification(to.Id, invitation.InviteeEmailAddress);
                if (emailVerification == null)
                {
                    emailVerification = new EmailVerification {
                        EmailAddress = to.GetBestEmailAddress().Address, UserId = to.Id
                    };
                    _emailVerificationsCommand.CreateEmailVerification(emailVerification);
                }
            }

            return(emailVerification);
        }