public ActionResult SignUp(RequiredInfoViewModel requiredInfoViewModel) { if (!ModelState.IsValid) { return View(requiredInfoViewModel); } var subDomain = GetSubDomainFromCharityName(requiredInfoViewModel.CharityName); var activationToken = TokenHelper.CreateRandomIdentifier(); var registrationInfo = new RegistrationInfo(); Mapper.DynamicMap(requiredInfoViewModel, registrationInfo); var result = _charityMembershipService.RegisterUserAndCharity(registrationInfo); if (result) { var emailViewModel = new EmailViewModel { To = requiredInfoViewModel.UserIdentifier, ActivationToken = activationToken.AsQueryString() }; signUpQueueingService.QueueEmail(emailViewModel); signUpQueueingService.QueueProvisioning(); TempData["SubDomain"] = subDomain; return RedirectToAction("Complete"); } ModelState.AddModelError("", "User and Charity registration failed. Please contact support."); return View(); }
public ActionResult SignUp(RequiredInfoViewModel requiredInfoViewModel) { if (!ModelState.IsValid) { return View(requiredInfoViewModel); } var subDomain = GetSubDomainFromCharityName(requiredInfoViewModel.CharityName); var activationToken = TokenHelper.CreateRandomIdentifier(); //TODO subDomain should be stored to database Session[activationToken.AsQueryString()] = subDomain; /* Add membership record inc. domain information */ var emailViewModel = new EmailViewModel { To = requiredInfoViewModel.UserIdentifier, ActivationToken = activationToken.AsQueryString() }; signUpQueueingService.QueueEmail(emailViewModel); signUpQueueingService.QueueProvisioning(); TempData["SubDomain"] = subDomain; return RedirectToAction("Complete"); }
public void QueueEmail(EmailViewModel emailViewModel) { dynamic email = new Email("SignUp"); email.To = emailViewModel.To; email.ActivationToken = emailViewModel.ActivationToken; email.BaseDomain = configuration.BaseDomain; email.Send(); }