Exemplo n.º 1
0
        public EmailSendAttempt SendActivation(RequestContext request, User u)
        {
            var template = LoadTemplate(
                "template-user-activation",
                request.HttpContext.Server.MapPath("~/Messages/UserActivation.template")
            );
            var url = new UrlHelper(request).Action(MVC.Public.Login.Activate(u.ActivationCode));
            var e = Builder.Transform(
                template,
                new TemplateData
                    {
                        {"login", u.Login},
                        {"program", Application.ProgramName},
                        {"url", url.ToAbsoluteUrl(request.HttpContext.Request).ToString() },
                    },
                request.HttpContext.Request
            );
            e.Recipient = new EmailAddress {Address = u.Email, Name = u.DisplayName};

            var attempt = Sender.Send(e);
            if (attempt.Success)
            {
                u.LastActivationEmailSent = DateTime.UtcNow;
                UserRepository.Save(u);
            }
            return attempt;
        }
Exemplo n.º 2
0
 public EmailSendAttempt SendReset(RequestContext request, User u, string password)
 {
     var template = LoadTemplate(
         "template-user-reset",
         request.HttpContext.Server.MapPath("~/Messages/UserReset.template")
     );
     var url = new UrlHelper(request).Action(MVC.Public.Login.Index());
     var e = Builder.Transform(
         template,
         new TemplateData
             {
                 {"login", u.Login},
                 {"program", Application.ProgramName},
                 {"password", password},
                 {"url", url.ToAbsoluteUrl(request.HttpContext.Request).ToString() },
             },
         request.HttpContext.Request
     );
     e.Recipient = new EmailAddress { Address = u.Email, Name = u.DisplayName };
     return Sender.Send(e);
 }
Exemplo n.º 3
0
 public EmailSendAttempt SendAward(RequestContext request, UserAward award)
 {
     var template = LoadTemplate(
         "template-user-award",
         request.HttpContext.Server.MapPath("~/Messages/UserAward.template")
     );
     var recipient = Users[award.Recipient];
     var nominator = Users[award.Nominator];
     var url = new UrlHelper(request).Action(MVC.Public.Award.Index(award.Document.Id));
     var e = Builder.Transform(
         template,
         new TemplateData
             {
                 {"program", Application.ProgramName},
                 {"url", url.ToAbsoluteUrl(request.HttpContext.Request).ToString() },
                 {"recipient", recipient.DisplayName},
                 {"nominator", nominator.DisplayName}
             },
         request.HttpContext.Request
     );
     e.Recipient = new EmailAddress { Address = recipient.Email, Name = recipient.DisplayName };
     return Sender.Send(e);
 }
Exemplo n.º 4
0
        public void ToAbsoluteUrl_UrlHelperRequestContextIsNull_ThrowsException()
        {
            var urlHelper = new UrlHelper();
            // It is not possible to set UrlHelper.RequestContext to null and at the same time to have RouteCollection being not null.
            // Therefor this little trick to pass the null check for the urlHelper.RouteCollection.

            urlHelper.GetType().GetProperty("RouteCollection").GetSetMethod(true).Invoke(urlHelper, new object[] { new RouteCollection() });
            Assert.That(urlHelper.RouteCollection, Is.Not.Null);

            var parameterName = Assert.Throws<ArgumentNullException>(() => urlHelper.ToAbsoluteUrl("/some/relative/url")).ParamName;
            Assert.That(parameterName, Is.EqualTo("urlHelper.RequestContext"));
        }