public async Task <IActionResult> Validation(AccountForRegisterDTO accountRegister) { if (!ModelState.IsValid) { return(StatusCode(400, new { errors = ModelState.Select(error => error.Value.Errors).Where(c => c.Count > 0).ToList() })); } var validationUnique = new Dictionary <dynamic, dynamic>(); if (_repo.Exists(accountRegister.Username)) { validationUnique.Add("Username", "Username already used"); } if (_repo.Exists(accountRegister.Email)) { validationUnique.Add("Email", "Email already used"); } if (_repo.Exists(accountRegister.PhoneNumber)) { validationUnique.Add("Phone", "Phone number already used"); } return(StatusCode(400, new { errors = validationUnique })); }
public async Task <IActionResult> Register(AccountForRegisterDTO accountForRegister) { if (_repo.Exists(accountForRegister.Email) || _repo.Exists(accountForRegister.Username)) { return(BadRequest("Username or email already registered")); } // byte[] passwordHashed, passwordSalt; // HashPassword(accountForRegister.Password, out passwordHashed, out passwordSalt); var account = new Engrisk.Models.Account() { UserName = accountForRegister.Username, Fullname = accountForRegister.Fullname, Address = accountForRegister.Address, Email = accountForRegister.Email, DateOfBirth = accountForRegister.DateOfBirth, PhoneNumber = accountForRegister.PhoneNumber }; var accountCreated = await _userManager.CreateAsync(account, accountForRegister.Password); if (accountCreated.Succeeded) { foreach (var role in accountForRegister.Roles) { await _userManager.AddToRoleAsync(account, role); } return(CreatedAtAction("GetAccountDetail", new { id = account.Id }, account)); } return(BadRequest()); }