aboutsummaryrefslogtreecommitdiff
path: root/BackEnd/Timeline/Services/User/RegisterCode/RegisterCodeService.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-04-18 18:38:32 +0800
committercrupest <crupest@outlook.com>2022-04-18 18:38:32 +0800
commit9f189100c93c43372459c25984cb56ed00165f39 (patch)
treeb6b379a2e2a99a273e72c5361e0bb86652afa84c /BackEnd/Timeline/Services/User/RegisterCode/RegisterCodeService.cs
parentf840db633076f8bb172beee5f0f8cab2d76ee23a (diff)
downloadtimeline-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.cs20
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;
+ }
}
}