public async Task<IdentityResult> RegisterCustomerAsync(UserModel userModel, AppRole appRole = AppRole.customer) { var addToRoleResult = new IdentityResult(); // Add generate username to the model IdentityUser user = new IdentityUser { UserName = userModel.UserName, Email = userModel.EmailAddress, EmailConfirmed = true, PhoneNumber = userModel.PhoneNumber, PhoneNumberConfirmed = true, }; var result = await _userManager.CreateAsync(user, userModel.Password); //Role-user combination is managed as Contact-Role combination in ContactRole table //Create Role Admin if it does not exist var _role = await _roleManager.FindByNameAsync(appRole.ToString()); if (_role == null) { _role = new IdentityRole(appRole.ToString()); var roleresult = await _roleManager.CreateAsync(_role); } var rolesForUser = await _userManager.GetRolesAsync(user.Id); if (!rolesForUser.Contains(_role.Name)) { addToRoleResult = await _userManager.AddToRoleAsync(user.Id, _role.Name); } return addToRoleResult; }
public async Task<IHttpActionResult> RegisterCustomer(UserModel userModel) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var result = new IdentityResult(); try { var userExistance = _repo.IsUserExistsByUsername(userModel.UserName); if (userExistance) { return BadRequest("User Name already exist."); } result = await _repo.RegisterCustomerAsync(userModel); var user = new User() { DateOfBirth = userModel.DateOfBirth, FirstName = userModel.FirstName, LastName = userModel.LastName, Gender = (userModel.Gender == 1) ? Gender.male : Gender.female }; UnitOfWork.UserRepository.Insert(user); UnitOfWork.SaveChange(); } catch (Exception) { IHttpActionResult errorResult = GetErrorResult(result); if (errorResult != null) { return errorResult; } } return Ok(); }
//http://localhost:51473/api/Account/RegisterAdmin // { // "UserName": "******", // "Password": "******", // "ConfirmPassword": "******", // "EmailAddress": "*****@*****.**", // "PhoneNumber": "09911270918", // "FirstName": "test", // "LastName": "user", // "Gender": "1", // "DateOfBirth": "2015-08-01" //} // POST api/Account/RegisterAdmin //[HttpPost] //[AllowAnonymous] //[Route("RegisterAdmin")] private async Task<IHttpActionResult> RegisterAdmin(UserModel userModel) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var result = new IdentityResult(); try { result = await _repo.RegisterCustomerAsync(userModel, AppRole.admin); var user = new User() { //DateOfBirth = userModel.DateOfBirth, FirstName = userModel.FirstName, LastName = userModel.LastName, Gender = (userModel.Gender == 1) ? Gender.male : Gender.female }; UnitOfWork.UserRepository.Insert(user); UnitOfWork.SaveChange(); } catch (Exception) { IHttpActionResult errorResult = GetErrorResult(result); if (errorResult != null) { return errorResult; } } return Ok(); }