diff options
author | crupest <crupest@outlook.com> | 2022-04-18 18:38:32 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-04-18 18:38:32 +0800 |
commit | 9f189100c93c43372459c25984cb56ed00165f39 (patch) | |
tree | b6b379a2e2a99a273e72c5361e0bb86652afa84c /BackEnd/Timeline/Services/User/RegisterCode/RegisterCodeService.cs | |
parent | f840db633076f8bb172beee5f0f8cab2d76ee23a (diff) | |
download | timeline-9f189100c93c43372459c25984cb56ed00165f39.tar.gz timeline-9f189100c93c43372459c25984cb56ed00165f39.tar.bz2 timeline-9f189100c93c43372459c25984cb56ed00165f39.zip |
...
Diffstat (limited to 'BackEnd/Timeline/Services/User/RegisterCode/RegisterCodeService.cs')
-rw-r--r-- | BackEnd/Timeline/Services/User/RegisterCode/RegisterCodeService.cs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/BackEnd/Timeline/Services/User/RegisterCode/RegisterCodeService.cs b/BackEnd/Timeline/Services/User/RegisterCode/RegisterCodeService.cs index 97a685d6..254d3747 100644 --- a/BackEnd/Timeline/Services/User/RegisterCode/RegisterCodeService.cs +++ b/BackEnd/Timeline/Services/User/RegisterCode/RegisterCodeService.cs @@ -14,13 +14,17 @@ namespace Timeline.Services.User.RegisterCode private readonly DatabaseContext _databaseContext; private readonly IUserService _userService; + private readonly IClock _clock; + private readonly RandomNumberGenerator _randomNumberGenerator; - public RegisterCodeService(DatabaseContext databaseContext, IUserService userService) + public RegisterCodeService(DatabaseContext databaseContext, IUserService userService, IClock clock) { _databaseContext = databaseContext; _userService = userService; + _clock = clock; + _randomNumberGenerator = RandomNumberGenerator.Create(); } @@ -99,6 +103,20 @@ namespace Timeline.Services.User.RegisterCode { throw new NotImplementedException(); } + + public async Task<UserEntity> RegisterUserWithCode(CreateUserParams userParams, string registerCode) + { + var registerCodeOwner = await GetCodeOwnerAsync(registerCode); + if (registerCodeOwner is null) + { + throw new InvalidRegisterCodeException("Register code is invalid."); + } + + var user = await _userService.CreateUserAsync(userParams); + await CreateRegisterInfoAsync(user.Id, registerCode, _clock.GetCurrentTime()); + + return user; + } } } |