Beispiel #1
0
        public async Task <Guid> RegisterAsync(
            string country,
            string surname,
            string name,
            string login,
            string email,
            string phone,
            string password,
            string ipAddress,
            string userAgent,
            CancellationToken ct)
        {
            var profile = new Profile
            {
                Surname = surname,
                Name    = name
            };

            profile.Id = await _profilesService.CreateAsync(profile, ct);

            var passwordHash = PasswordUtils.ToPasswordHash(password);

            await _registrationIdentityService.CreateLoginIdentityAsync(profile.Id, login, passwordHash, ct);

            await _registrationIdentityService.CreateEmailIdentityAsync(profile.Id, email, passwordHash, ct);

            await _registrationIdentityService.CreatePhoneIdentityAsync(profile.Id, phone, passwordHash, ct);

            await _emailConfirmationService.SendMessageAsync(email, ipAddress, userAgent, ct);

            var tokenId = await _phoneConfirmationService.SendMessageAsync(country, phone, ipAddress, userAgent, ct);

            return(tokenId);
        }
        public async Task <UserDto> RegisterAsync(UserRegisterModel registerModel)
        {
            var newUser = new User
            {
                FirstName     = registerModel.FirstName,
                LastName      = registerModel.LastName,
                Email         = registerModel.Email,
                UserName      = registerModel.Username,
                SecurityStamp = Guid.NewGuid().ToString()
            };
            var result = await _userManager.CreateAsync(newUser, registerModel.Password);

            if (result.Succeeded)
            {
                await _profilesService.CreateAsync(newUser.Id.ToString());

                var user = await _userManager.FindByEmailAsync(newUser.Email);

                return(user.ToDto());
            }
            else
            {
                var message = string.Join(" ", result.Errors.Select(e => e.Description));
                throw new RegisterUserException(message);
            }
        }