public async Task <Tuple <IdentityResult, UserDTO> > CreateUser(RegisteringUserDTO registeringUser) { var user = _modelFactory.ConvertToAppUser(registeringUser); IdentityResult identityResult = await _userManager.CreateAsync(user, registeringUser.Password); var userResult = new UserDTO(); if (identityResult.Succeeded) { var rolesAssigned = registeringUser.Roles.Except(new string[] { RoleAdmin }); var rolesNotExists = GetRolesNotExist(rolesAssigned.ToArray()); if ((rolesNotExists.Count() > 0) || (rolesAssigned.Count() == 0)) { identityResult = new IdentityResult(string.Format("Roles '{0}' does not exixts in the system", string.Join(",", rolesNotExists))); await _userManager.DeleteAsync(user); } else { identityResult = _userManager.AddToRoles(user.Id, rolesAssigned.ToArray()); userResult = _modelFactory.ConvertFromAppUser(user); } } return(new Tuple <IdentityResult, UserDTO>(identityResult, userResult)); }
public PhongTroUser ConvertToAppUser(RegisteringUserDTO registeringUser) { return(new PhongTroUser() { UserName = registeringUser.Username, Email = registeringUser.Email, FirstName = registeringUser.FirstName, LastName = registeringUser.LastName, DateOfBirth = registeringUser.DateOfBirth, PhoneNumber = registeringUser.Phone, }); }
public async Task <IHttpActionResult> CreateUser(RegisteringUserDTO registeringUser) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Tuple <IdentityResult, UserDTO> addUserResult = await _Repository.CreateUser(registeringUser); var identityResult = addUserResult.Item1; if (!identityResult.Succeeded) { return(GetErrorResult(identityResult)); } var resultUser = addUserResult.Item2; Uri locationHeader = new Uri(Url.Link("GetUserById", new { id = resultUser.Id })); return(Created(locationHeader, resultUser)); }