public void TestMemberMonashGsbCommunity()
        {
            // Create a member.

            var community = TestCommunity.MonashGsb.CreateTestCommunity(_communitiesCommand, _verticalsCommand, _contentEngine);
            var member    = CreateMember(community);

            _activeCommunity = ActiveCommunity.Monash;

            // Create an email verification.

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

            _emailVerificationsCommand.CreateEmailVerification(emailVerification);

            // Send the email.

            var templateEmail = new ActivationEmail(member, emailVerification);

            _emailsCommand.TrySend(templateEmail);

            // Check.

            var email = _emailServer.AssertEmailSent();

            email.AssertAddresses(Return, Return, member);
            email.AssertSubject(GetSubject());
            email.AssertHtmlViewChecks();
            email.AssertHtmlView(GetBody(templateEmail, member, GetContent(templateEmail, member, emailVerification)));
            email.AssertNoAttachments();
            AssertCompatibleAddresses(email);
        }
Exemple #2
0
        public async Task <(IdentityResult result, UserRegistrationSuccessResponse registrationSuccessResponse)> CreateUser(User user, string password)
        {
            var invited = await _invitationRepository.IsInvited(user.Email);

            if (!invited)
            {
                var identityResult = IdentityResult.Failed(new IdentityError {
                    Code = "INVITATION REQUIRED", Description = "Email not invited"
                });
                return(identityResult, null);
            }
            var(result, registrationSuccessResponse, token) = await _usersRepository.Create(user, password);

            if (!result.Succeeded)
            {
                return(result, registrationSuccessResponse);
            }

            user.NormalizedEmail    = user.Email.ToUpper();
            user.NormalizedUserName = user.UserName.ToUpper();
            var mail = new ActivationEmail(_mailConfig);

            _mailService.Send(mail.Build("/activate/" + token, new MailAddress(user.Email, user.UserName)));
            return(result, registrationSuccessResponse);
        }
        public void TestMember()
        {
            // Create a member.

            var member = CreateMember();

            // Create an email verification.

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

            _emailVerificationsCommand.CreateEmailVerification(emailVerification);

            // Send the email.

            var templateEmail = new ActivationEmail(member, emailVerification);

            _emailsCommand.TrySend(templateEmail);

            // Check.

            var email = _emailServer.AssertEmailSent();

            email.AssertAddresses(Return, Return, member);
            email.AssertSubject(GetSubject());
            email.AssertViewChecks(MediaTypeNames.Text.Html);
            email.AssertView(MediaTypeNames.Text.Html, GetBody(templateEmail, member, GetContent(templateEmail, member, emailVerification)));
            email.AssertNoAttachments();
            AssertCompatibleAddresses(email);
        }
Exemple #4
0
        private void ActivationMailBuilder(string callbackUrl, string sendTo)
        {
            var email = new ActivationEmail
            {
                CallbackUrl = callbackUrl,
                To          = sendTo
            };

            email.Send();
        }
Exemple #5
0
        protected void Create_Click(object sender, EventArgs e)
        {
            try
            {
                var userId = 0;
                var user   = new User
                {
                    FirstName       = txtFirstName.Text.Trim(),
                    LastName        = txtLastName.Text.Trim(),
                    LastName2       = txtLastName2.Text.Trim(),
                    Email           = txtEmail.Text.Trim(),
                    Country         = ddlCountry.SelectedValue,
                    Username        = txtUsername.Text.Trim(),
                    Password        = txtPassword.Text.Trim(),
                    PasswordAge     = Convert.ToInt32(txtAge.Text.Trim()),
                    Age             = Convert.ToInt32(ddlExpiration.SelectedValue),
                    UserId          = 0,
                    PasswordLastSet = DateTime.Today,
                    Active          = false
                };

                user.GenerateCode(user);

                userId = AccessDb.AddUser(user);

                switch (userId)
                {
                case -1:
                    errorMessage.Text = "User Could not be created, Username is already in use";
                    break;

                case -2:
                    errorMessage.Text = "User Could not be created, Email Address is already in use";
                    break;

                default:
                    errorMessage.Text = "User registered, Confirm email to activate account";

                    StringWriter writer = new StringWriter();
                    Server.Execute("Email.aspx", writer);
                    string html = writer.ToString();

                    var ae = new ActivationEmail();
                    ae.SendActivationEmail(user, html);
                    AccessDb.AddActivation(user);
                    break;
                }
                ClientScript.RegisterStartupScript(GetType(), "alert", "alert('" + errorMessage.Text + "');", true);
                CleanFields();
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #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);
            }
        }
        void IAccountVerificationsCommand.ResendActivation(IRegisteredUser user)
        {
            // Only supported for members at the moment.

            var member = user as IMember;

            if (member == null)
            {
                return;
            }

            // Find an existing verification or create a new one.

            var emailVerification = GetEmailVerification(member);

            // Send the email.

            var email = new ActivationEmail(member, emailVerification);

            _emailsCommand.TrySend(email);
        }
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                var eventItem = _eventRepository.GetById(new Guid(collection["EventId"]));

                var ipAddress = GetIPAddress();

                var visitor = _visitorRepository.GetByEmail(collection["Email"]);
                if (visitor == null)
                {
                    visitor = Visitor.Create(collection["Name"], collection["City"], collection["Email"], collection["Postcode"]);

                    _visitorRepository.Insert(visitor);
                }

                /*
                 * // Check if the visitor already registered on this day or earlier than legacy deadline
                 * var registrations = _registrationRepository.GetByVisitorAndEvent(visitor.Id, eventItem);
                 * if (registrations.Count() > 0)
                 * {
                 *  DateTime legacyDate = eventItem.TimeRange.Start;
                 *  switch (_settings.LegacyPeriod.Unit)
                 *  {
                 *      case Profilan.SharedKernel.Unit.Hours:
                 *          legacyDate = eventItem.TimeRange.Start.AddHours(-1 * _settings.LegacyPeriod.Amount);
                 *          break;
                 *      case Profilan.SharedKernel.Unit.Minutes:
                 *          legacyDate = eventItem.TimeRange.Start.AddMinutes(-1 * _settings.LegacyPeriod.Amount);
                 *          break;
                 *      case Profilan.SharedKernel.Unit.Seconds:
                 *          legacyDate = eventItem.TimeRange.Start.AddSeconds(-1 * _settings.LegacyPeriod.Amount);
                 *          break;
                 *      case Profilan.SharedKernel.Unit.Days:
                 *          legacyDate = eventItem.TimeRange.Start.AddDays(-1 * _settings.LegacyPeriod.Amount);
                 *          break;
                 *      case Profilan.SharedKernel.Unit.Months:
                 *          legacyDate = eventItem.TimeRange.Start.AddMonths(-1 * _settings.LegacyPeriod.Amount);
                 *          break;
                 *      case Profilan.SharedKernel.Unit.Years:
                 *          legacyDate = eventItem.TimeRange.Start.AddYears(-1 * _settings.LegacyPeriod.Amount);
                 *          break;
                 *      default:
                 *          break;
                 *  }
                 *
                 *  // Haal de bezochte registraties op (bezocht of bevestigd?)
                 *  var visitedRegistrations = _registrationRepository.GetVisitedByVisitor(visitor.Id);
                 *
                 *  if (visitedRegistrations.Count() > 0)
                 *  {
                 *      var lastEvent = _eventRepository.GetById(visitedRegistrations.Last().Event.Id);
                 *      if (lastEvent.TimeRange.Start >= legacyDate)
                 *      {
                 *          return RedirectToAction("EarlyRegistered");
                 *      }
                 *  }
                 *
                 *
                 *  if (registrations.Last().Confirmed == true)
                 *  {
                 *      return RedirectToAction("AlreadyRegistered");
                 *  }
                 * }
                 */

                // Voeg registratie toe
                var numberOfVisitors = Convert.ToInt32(collection["NumberOfVisitors"]);
                var registration     = Registration.Create(visitor, eventItem, numberOfVisitors, false);
                registration.IPAddress = ipAddress;
                _registrationRepository.Insert(registration);


                // Verstuur een activatie email
                string themeTitle = "";
                if (eventItem.Theme != null)
                {
                    Theme theme = _themeRepository.GetById(eventItem.Theme.Id);
                    themeTitle = "[" + theme.Title + "]";
                }

                var             activationUrl = Request.Url.GetLeftPart(UriPartial.Authority) + "/registration/confirm/" + registration.Id;
                var             logoUrl       = Request.Url.GetLeftPart(UriPartial.Authority) + "/img";
                ActivationEmail email         = new ActivationEmail()
                {
                    To               = collection["Email"],
                    ActivationUrl    = activationUrl,
                    Name             = collection["Name"],
                    Date             = eventItem.TimeRange.Start.ToString("dd-MM-yyyy"),
                    TimeFrom         = eventItem.TimeRange.Start.ToShortTimeString(),
                    TimeTill         = eventItem.TimeRange.End.ToShortTimeString(),
                    NumberOfVisitors = numberOfVisitors,
                    LogoUrl          = logoUrl,
                    ThemeTitle       = themeTitle,
                };
                email.Send();

                return(RedirectToAction("ThankYou"));
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }