aboutsummaryrefslogtreecommitdiff
path: root/BackEnd/Timeline/Services/BasicUserService.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-02-12 22:39:57 +0800
committerGitHub <noreply@github.com>2021-02-12 22:39:57 +0800
commit94eba6cda12010c8657f0e7c5e6977a8d3b46e8c (patch)
treed6638f60df77ed97fc70f1750f90019c2bb9e9c1 /BackEnd/Timeline/Services/BasicUserService.cs
parenta759460ad757922e761a07504bcdea7eeaa07860 (diff)
parent83910122bfd0aa9bd207b6d5f631774415312716 (diff)
downloadtimeline-94eba6cda12010c8657f0e7c5e6977a8d3b46e8c.tar.gz
timeline-94eba6cda12010c8657f0e7c5e6977a8d3b46e8c.tar.bz2
timeline-94eba6cda12010c8657f0e7c5e6977a8d3b46e8c.zip
Merge pull request #267 from crupest/backend
春节大换血 Spring festival big change.
Diffstat (limited to 'BackEnd/Timeline/Services/BasicUserService.cs')
-rw-r--r--BackEnd/Timeline/Services/BasicUserService.cs29
1 files changed, 29 insertions, 0 deletions
diff --git a/BackEnd/Timeline/Services/BasicUserService.cs b/BackEnd/Timeline/Services/BasicUserService.cs
index fbbb6677..de0829ee 100644
--- a/BackEnd/Timeline/Services/BasicUserService.cs
+++ b/BackEnd/Timeline/Services/BasicUserService.cs
@@ -29,6 +29,14 @@ namespace Timeline.Services
/// <exception cref="ArgumentException">Thrown when <paramref name="username"/> is of bad format.</exception>
/// <exception cref="UserNotExistException">Thrown when the user with given username does not exist.</exception>
Task<long> GetUserIdByUsername(string username);
+
+ /// <summary>
+ /// Get the username modified time of a user.
+ /// </summary>
+ /// <param name="userId">User id.</param>
+ /// <returns>The time.</returns>
+ /// <exception cref="UserNotExistException">Thrown when user does not exist.</exception>
+ Task<DateTime> GetUsernameLastModifiedTime(long userId);
}
public class BasicUserService : IBasicUserService
@@ -62,5 +70,26 @@ namespace Timeline.Services
return entity.Id;
}
+
+ public async Task<DateTime> GetUsernameLastModifiedTime(long userId)
+ {
+ var entity = await _database.Users.Where(u => u.Id == userId).Select(u => new { u.UsernameChangeTime }).SingleOrDefaultAsync();
+
+ if (entity is null)
+ throw new UserNotExistException(userId);
+
+ return entity.UsernameChangeTime;
+ }
+ }
+
+ public static class BasicUserServiceExtensions
+ {
+ public static async Task ThrowIfUserNotExist(this IBasicUserService service, long userId)
+ {
+ if (!await service.CheckUserExistence(userId))
+ {
+ throw new UserNotExistException(userId);
+ }
+ }
}
}