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); }
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>"); }
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); }
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)); }
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); } }
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]); }
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); }