public void TestResolveParameters() { var result = OutgoingMailMessage.ResolveParameters("$L$orem $ipsum$ dolor $$s$i$t$$ amet$blank$, $ $consectetuer $0.99 ad$i$p$i$scing $$elit$. $$$Aenean$ $commodo$ $l$igula eget $dol$or.", new Dictionary <string, string> { { "i", "i" }, { "L", "L" }, { "ipsum", "ipswich" }, { "Aenean", "dol$" }, { "corpus", "sodalitas" }, { "nothing", "nil" }, { "blank", "" }, { "dol", "do" } }); Assert.AreEqual("Lorem ipswich dolor $sit$ amet, $ $consectetuer $0.99 adipiscing $elit$. $dol$ $commodo$ $l$igula eget door.", result); }
public ResetPasswordResponse ResetPassword(ResetPasswordRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.UserName, "UserName"); var now = Platform.Time; var user = GetUser(request.UserName); // ensure user found, account is active and the current password is correct if (string.IsNullOrEmpty(user.EmailAddress)) { throw new RequestValidationException(SR.MessageEmailAddressNotConfigured); } // ensure user found, account is active and the current password is correct if (user == null || !user.IsActive(now)) { // no such user, account not active, or invalid password // the error message is deliberately vague throw new UserAccessDeniedException(); } // Just use the .NET routine var newPassword = Membership.GeneratePassword(8, 1); var expiryTime = Platform.Time; // change the password user.ChangePassword(newPassword, expiryTime); // send email var settings = new PasswordResetEmailSettings(); var mail = new OutgoingMailMessage( settings.FromAddress, user.EmailAddress, settings.SubjectTemplate.Replace("$USER", user.DisplayName), settings.BodyTemplate.Replace("$USER", user.DisplayName).Replace("$PASSWORD", newPassword), settings.BodyTemplate.ToLower().Contains("html")); mail.Enqueue(OutgoingMailClassification.Normal); return(new ResetPasswordResponse(user.EmailAddress)); }
public ResetPasswordResponse ResetPassword(ResetPasswordRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.UserName, "UserName"); var now = Platform.Time; var user = GetUser(request.UserName); // ensure user found, account is active and the current password is correct if (string.IsNullOrEmpty(user.EmailAddress)) { throw new RequestValidationException(SR.MessageEmailAddressNotConfigured); } // ensure user found, account is active and the current password is correct if (user == null || !user.IsActive(now)) { // no such user, account not active, or invalid password // the error message is deliberately vague throw new UserAccessDeniedException(); } // Just use the .NET routine var newPassword = Membership.GeneratePassword(8, 1); var expiryTime = Platform.Time; // change the password user.ChangePassword(newPassword, expiryTime); // send email var settings = new PasswordResetEmailSettings(); var mail = new OutgoingMailMessage( settings.FromAddress, user.EmailAddress, settings.SubjectTemplate.Replace("$USER", user.DisplayName), settings.BodyTemplate.Replace("$USER", user.DisplayName).Replace("$PASSWORD", newPassword), settings.BodyTemplate.ToLower().Contains("html")); mail.Enqueue(OutgoingMailClassification.Normal); return new ResetPasswordResponse(user.EmailAddress); }
public void TestResolveParametersLazy() { var countI = 0; var countL = 0; var countIpsum = 0; var countAenean = 0; var countCorpus = 0; var countNothing = 0; var countBlank = 0; var countDol = 0; var state = new Object(); var result = OutgoingMailMessage.ResolveParameters("$L$orem $ipsum$ dolor $$s$i$t$$ amet$blank$, $ $consectetuer $0.99 ad$i$p$i$scing $$elit$. $$$Aenean$ $commodo$ $l$igula eget $dol$or.", state, new Dictionary <string, Func <Object, string> > { { "i", s => { countI++; return("i"); } }, { "L", s => { countL++; return("L"); } }, { "ipsum", s => { countIpsum++; return("ipswich"); } }, { "Aenean", s => { countAenean++; return("dol$"); } }, { "corpus", s => { countCorpus++; return("sodalitas"); } }, { "nothing", s => { countNothing++; return("nil"); } }, { "blank", s => { countBlank++; return(""); } }, { "dol", s => { countDol++; return("do"); } } }); Assert.AreEqual("Lorem ipswich dolor $sit$ amet, $ $consectetuer $0.99 adipiscing $elit$. $dol$ $commodo$ $l$igula eget door.", result); Assert.AreEqual(1, countI, "function 'i' should have been evaluated exactly once"); Assert.AreEqual(1, countL, "function 'L' should have been evaluated exactly once"); Assert.AreEqual(1, countIpsum, "function 'ipsum' should have been evaluated exactly once"); Assert.AreEqual(1, countAenean, "function 'Aenean' should have been evaluated exactly once"); Assert.AreEqual(0, countCorpus, "function 'corpus' should not have been evaluated at all"); Assert.AreEqual(0, countNothing, "function 'nothing' should not have been evaluated at all"); Assert.AreEqual(1, countBlank, "function 'blank' should have been evaluated exactly once"); Assert.AreEqual(1, countDol, "function 'dol' should have been evaluated exactly once"); }