public async Task <IActionResult> CreateAccountRequest([FromBody] UserCreateRequestDto request) { var currentUser = HttpContext.GetUserId(); var result = await identityService.CreateUserAsync(request, currentUser); return(StatusCode(result.StatusCode, result)); }
async public Task <IResponseOutput> Create([FromBody] UserCreateRequestDto requestDto) { Department department = await _fsql.Select <Department>().Where(d => d.Id == requestDto.DepartmentId).FirstAsync(); if (department == null) { throw new ArgumentException("无该部门"); } /* Role role = await _fsql.Select<Role>().Where(r => r.Id == requestDto.RoleId).FirstAsync(); * if (role == null) * { * throw new ArgumentException("无该职位"); * }*/ if (await _fsql.Select <User>().Where(u => u.UserName == requestDto.UserName).CountAsync() > 0) { throw new ArgumentException($"用户{requestDto.UserName}已经存在"); } using (var uow = _fsql.CreateUnitOfWork()) //使用 UnitOfWork 事务 { User user = _mapper.Map <User>(requestDto); user.CreatedAt = DateTime.Now; var ret = await _fsql.Insert(user).WithTransaction(uow.GetOrBeginTransaction()).ExecuteInsertedAsync(); user = ret.FirstOrDefault(); /* var userRole = await _fsql.Insert(new UserRole { UserId = user.Id, RoleId = role.Id, CreatedAt = DateTime.Now }) * .WithTransaction(uow.GetOrBeginTransaction()).ExecuteInsertedAsync();*/ if (!(user?.Id > 0)) { return(ResponseOutput.NotOk()); } if (requestDto.RoleIds != null && requestDto.RoleIds.Any()) { var userRoles = requestDto.RoleIds.Select(r => new UserRole { UserId = user.Id, RoleId = r }); var userRolesRet = await _fsql.Insert(userRoles).WithTransaction(uow.GetOrBeginTransaction()).ExecuteInsertedAsync(); } var responseDto = _mapper.Map <UserResponseDto>(user); uow.Commit(); /* responseDto.RoleId = role.Id; * responseDto.RoleName = role.Name;*/ responseDto.DepartmentName = department.Name; return(ResponseOutput.Ok(responseDto)); } }
private void CreateUser() { var request = new UserCreateRequestDto() { name = _inputField.text, }; var url = NetworkManager.Instance.GetMethod(MethodType.PostUserCreate); _inputField.interactable = true; StartCoroutine(NetworkManager.Instance.WebRequest.Post <UserCreateRequestDto, UserCreateResponseDto>(url, request, response => { var token = response.token; NetworkManager.Instance.WebRequest.SetToken(token); AuthtokenManager.Save(token); SceneManager.LoadScene("Menu"); }, Debug.LogError)); }
public async Task <RegistrationResponse> CreateUserAsync(UserCreateRequestDto request, string currentUser) { // Check existing user. var existingUser = await userManager.FindByNameAsync(request.Email); if (existingUser != null) { return(new RegistrationResponse { IsSuccess = false, ResponseMessage = localizer["UserWithEmailExists"], StatusCode = (int)HttpStatusCode.BadRequest }); } // Construct user object var user = new ApplicationUser { UserName = request.Email, Email = request.Email, PhoneNumber = request.PhoneNumber, FullName = request.FullName, FullNameAr = request.FullNameAr, CreatedBy = currentUser }; // Create user var result = await userManager.CreateAsync(user, request.Password); // Construct and return user creation error response if (!result.Succeeded) { return(new RegistrationResponse { IsSuccess = false, ResponseMessage = localizer["RegisterUserResponseErrMsg"], ValidationErrors = result.Errors.Select(err => new ValidationError { Name = err.Code, Description = err.Description }).ToList() }); } await userManager.AddClaimAsync(user, new Claim("UserType", "Employee")); // add roles to users IEnumerable <string> roles = request.Roles.Split(','); await userManager.AddToRolesAsync(user, roles); // Generate verification code and send it to client. var code = await userManager.GenerateChangePhoneNumberTokenAsync(user, request.PhoneNumber); var acceptLang = userDetectionService.GetAcceptLanguage(); var lang = !string.IsNullOrWhiteSpace(acceptLang.Substring(0, 2)) ? acceptLang.Substring(0, 2) : user.DefaultLang; // Send account verification email var sendMailResult = await messager.SendAccountVerificationEmail(request.Email, code, lang); if (!sendMailResult.Success) { return(new RegistrationResponse { IsSuccess = false, ResponseMessage = sendMailResult.Message, StatusCode = 700, UserId = hasher.Encrypt(user.Id), PhoneNumber = hasher.Encrypt(user.PhoneNumber) }); } //[TODO] SMS verification token. //if (await messager.SendSmsAsync(request.PhoneNumber, string.Format("your code is {0}", code))) //{ // return new RegistrationResponse { IsSuccess = true, ResponseMessage = "User registeration successfully.", StatusCode = 201, UserId = hasher.Encrypt(user.Id), PhoneNumber = hasher.Encrypt(user.PhoneNumber) }; //} // add user roles here. return(new RegistrationResponse { IsSuccess = true, ResponseMessage = localizer["RegisterAccountSentVerificationSuccessMsg"], StatusCode = (int)HttpStatusCode.OK, UserId = hasher.Encrypt(user.Id), PhoneNumber = hasher.Encrypt(user.PhoneNumber) }); }