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)); }
public IActionResult Register() { AdminUserRegisterViewModel viewModel = new AdminUserRegisterViewModel(); return(View(viewModel)); }