From 9f189100c93c43372459c25984cb56ed00165f39 Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 18 Apr 2022 18:38:32 +0800 Subject: ... --- .../User/RegisterCode/RegisterCodeService.cs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'BackEnd/Timeline/Services/User/RegisterCode/RegisterCodeService.cs') 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 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; + } } } -- cgit v1.2.3