コード例 #1
0
        public async Task <IActionResult> Register(AdminUserRegisterViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                User user = new User
                {
                    UserName     = viewModel.Username,
                    Email        = viewModel.Email,
                    FirstName    = viewModel.FirstName,
                    LastName     = viewModel.LastName,
                    DateCreated  = DateTime.Now,
                    UserStatusID = (int)UserStatusEnum.Active,
                    UserRoleID   = (int)UserRoleEnum.Member
                };

                //Create a new UserProfile after creating a new User - do not assign User to UserProfile until User is successfully created
                UserProfile userProfile = new UserProfile
                {
                    DisplayName                    = null,
                    Biography                      = null,
                    UserProfileVisibilityID        = (int)UserProfileVisibilityEnum.Everyone,
                    UserProfileCommentPermissionID = (int)UserProfileCommentPermissionEnum.Everyone
                };

                //Add a default UserProfile Avatar Image
                string defaultAvatarImageFileName = "default_avatar.png";
                string filePath = Path.Combine(webHostEnvironment.WebRootPath, "images\\UserProfile\\Avatar", defaultAvatarImageFileName);

                user.UserProfile = userProfile;
                user.UserProfile.AvatarFilePath = defaultAvatarImageFileName;

                var result = await userManager.CreateAsync(user, viewModel.Password);

                if (result.Succeeded)
                {
                    User newUser = await userManager.FindByNameAsync(user.UserName);

                    var roleResult = await userManager.AddToRoleAsync(newUser, "Member");

                    if (roleResult.Succeeded)
                    {
                        //Assign new UserProfile after user is created
                        user.UserProfile.UserID = user.Id;
                        await userProfileService.InsertAsync(user.UserProfile);

                        await signInManager.SignInAsync(user, isPersistent : false);

                        return(RedirectToAction("Index"));
                    }
                }

                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }

            return(View(viewModel));
        }
コード例 #2
0
        public IActionResult Register()
        {
            AdminUserRegisterViewModel viewModel = new AdminUserRegisterViewModel();

            return(View(viewModel));
        }