Exemplo n.º 1
0
        public IActionResult Register(UserForRegisterDto userForRegisterDto)
        {
            var userExists = _authService.UserExists(userForRegisterDto.Email);

            if (!userExists.Success)
            {
                return(BadRequest(userExists.Message));
            }
            byte[] passwordHash, passwordSalt;
            HashingHelper.CreatePasswordHash(userForRegisterDto.Password, out passwordHash, out passwordSalt);
            var user = new User
            {
                About          = userForRegisterDto.About,
                Birthday       = userForRegisterDto.Birthday,
                City           = userForRegisterDto.City,
                Country        = userForRegisterDto.Country,
                Email          = userForRegisterDto.Email,
                LastName       = userForRegisterDto.LastName,
                Name           = userForRegisterDto.FirstName,
                NativeLanguage = userForRegisterDto.NativeLanguage,
                PasswordHash   = passwordHash,
                PasswordSalt   = passwordSalt,
                PhoneNumber    = userForRegisterDto.PhoneNumber,
                Photo          = userForRegisterDto.Photo,
                // ProfileCreatedDate = userForRegisterDto.ProfileCreatedDate,
                Sex      = userForRegisterDto.Sex,
                UserName = userForRegisterDto.UserName
            };
            var registerResult = _authService.Register(user, userForRegisterDto.Password);

            List <UserLanguage> userLanguage = new List <UserLanguage>();
            List <UserHobby>    userHobby    = new List <UserHobby>();

            for (int i = 0; i < userForRegisterDto.Languages.Count; i++)
            {
                userLanguage.Add(new UserLanguage
                {
                    User     = registerResult.Data,
                    Language = new Language
                    {
                        Id = userForRegisterDto.Languages[i].Id
                    }
                });
            }
            for (int i = 0; i < userForRegisterDto.Hobbies.Count; i++)
            {
                userHobby.Add(new UserHobby
                {
                    User  = registerResult.Data,
                    Hobby = new Hobby
                    {
                        Id = userForRegisterDto.Hobbies[i].Id
                    }
                });
            }
            _userLanguageService.AddUserLanguage(userLanguage);
            _userHobbyService.AddUserHobby(userHobby);
            var result = _authService.CreateAccessToken(user);

            if (result.Success)
            {
                return(Ok(result.Data));
            }
            return(BadRequest(result.Message));
        }