示例#1
0
        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));
        }
示例#2
0
 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,
     });
 }
示例#3
0
        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));
        }