示例#1
0
        public void TestMapToModel()
        {
            var          sgHandler = new SendGridHandler(new MailGunHandler());
            const string subject   = "Test Subject";
            const string message   = "Test Message.";
            const string toAddress = "*****@*****.**";

            var email = new EmailModel()
            {
                Message = message,
                To      = new string[] { toAddress },
                Subject = subject,
            };

            var mapped = sgHandler.mapToSendGridEmail(email);

            Assert.NotNull(mapped);
            Assert.AreEqual(subject, mapped.subject);

            Assert.IsTrue(mapped.content.Count == 1);
            Assert.AreEqual(message, mapped.content[0].value);

            Assert.IsTrue(mapped.personalizations.Count == 1);
            Assert.IsTrue(mapped.personalizations[0].to.Count == 1);
            Assert.AreEqual(toAddress, mapped.personalizations[0].to[0].email);
        }
示例#2
0
        public void TestSendEmail()
        {
            var          sgHandler = new SendGridHandler(new MailGunHandler());
            const string subject   = "Test Subject";
            const string message   = "Test Message.";
            const string toAddress = "*****@*****.**";

            var email = new EmailModel()
            {
                Message = message,
                To      = new string[] { toAddress },
                Subject = subject,
            };

            sgHandler.SendEmail(email);
        }
        public IActionResult Index(MvcIdentityModel identity)
        {
            if (!ModelState.IsValid)
            {
                return(View("Registration", identity));
            }

            if (!UsernameAvailable(identity.Username))
            {
                ModelState.AddModelError("Username", "This username is already taken!");
                return(View("Registration", identity));
            }

            if (!EmailAvailable(identity.Email))
            {
                ModelState.AddModelError("Email", "This email is already in use!");
                return(View("Registration", identity));
            }

            var authIdentity = new AuthenticationIdentity()
            {
                Email             = identity.Email,
                NewAccount        = true,
                PendingActivation = true
            };

            identity.IpAddress = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();

            var activationToken = RandomData.String(16);

            var pendingActivation = new PendingActivationIdentity()
            {
                ActivationToken = activationToken,
                Identity        = identity
            };

            CacheStore.Create(activationToken, DateTime.UtcNow.AddHours(1), pendingActivation);

            SendGridHandler.SendRegistrationMail(identity, activationToken).Wait();

            return(RedirectToAction("Index", "Authentication", authIdentity));
        }