예제 #1
0
        public async Task <ActionResult> Create(UserCreateViewModel model)
        {
            if (HttpContext.User.Identity.IsAuthenticated)
            {
                return(Redirect(UrlManager.PopUrl()));
            }

            if (ModelState.IsValid)
            {
                AppUser user = _mapper.Map <AppUser>(model);
                user.Created = DateTime.UtcNow;

                IdentityResult result = new IdentityResult();
                result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    string code = await _userManager.GenerateEmailConfirmationTokenAsync(user.Id);

                    string callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    _mailingRepository.WelcomeMail(user.Email);
                    _mailingRepository.ActivationMail(user.Email, callbackUrl);

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    AddErrorsFromResult(result);
                }
            }

            return(View(model));
        }