public async Task <IActionResult> Register([FromBody] AccountRegistrationDto model) { if (!ModelState.IsValid) { var badResult = new OperationResult(); badResult.Message = string.Join("; ", ModelState.Values .SelectMany(x => x.Errors) .Select(x => x.ErrorMessage)); return(new OkObjectResult(badResult)); } var result = await _accountService.Register(model); return(new OkObjectResult(result)); }
public async Task <OperationResult> Register(AccountRegistrationDto model) { var result = new OperationResult(); var account = await _userManager.FindByEmailAsync(model.Email); if (account == null) { account = new ApplicationUser() { UserName = model.Email, FirstName = model.FirstName, LastName = model.LastName, Email = model.Email, PhoneNumber = model.PhoneNumber, Sex = model.Sex, Birthday = model.Birthday, Status = UserStatus.Active }; var accountResult = await _userManager.CreateAsync(account, model.Password); if (accountResult.Succeeded) { var user = await _userManager.FindByEmailAsync(account.Email); var rolesResult = await _userManager.AddToRoleAsync(user, "User"); } result.IsSuccessful = accountResult.Succeeded; result.Message = accountResult.Errors.Select(x => x.Description).Join(";"); } else { result.Message = "User with such email is already exists"; } return(result); }