Esempio n. 1
0
        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());
        }