Inheritance: Blog.Common.Identity.Models.BlogRegisterModel
Ejemplo n.º 1
0
        private CreateUserViewModel GetDefaultCreateUserModel()
        {
            var model = new CreateUserViewModel
            {
                Username = string.Empty,
                Password = string.Empty,
                ConfirmPassword = string.Empty,
                Email = string.Empty,
                FirstName = string.Empty,
                LastName = string.Empty,
                BirthDate = DateTime.Now,
                SelectedRole = string.Empty,
                RolesAvailable = GetUserRolesAvailable()
            };

            return model;
        }
Ejemplo n.º 2
0
        public async Task<ActionResult> Create(CreateUserViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    ViewBag.ErrorMessage = "Something went wrong. Please try again.";
                    return View(GetDefaultCreateUserModel());
                }

                var user = new BlogUser { UserName = model.Username, Email = model.Email };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    var roleResult = await UserManager.AddToRolesAsync(user.Id, new[] { model.SelectedRole });
                    if (!roleResult.Succeeded)
                    {
                        AddErrors(roleResult);
                        return View(GetDefaultCreateUserModel());
                    }

                    if (model.IdentityOnly) return RedirectToAction("Index", "Users");

                    var blogUser = await _userHelper.AddBlogUser(model);
                    if (blogUser.Error == null) return RedirectToAction("Index", "Users");

                    ViewBag.UserCreationError = blogUser.Error.Message;
                    return View(model);
                }
                AddErrors(result);
                return View(GetDefaultCreateUserModel());
            }
            catch (Exception ex)
            {
                _errorSignaler.SignalFromCurrentContext(ex);
                ViewBag.ErrorMessage = ex.Message;
                return View(GetDefaultCreateUserModel());
            }
        }