From 31be743207c09cc6e6cfff5f65d12126fb41cca3 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 28 Apr 2021 16:35:47 +0800 Subject: refactor: ... --- .../Timeline/Controllers/UserAvatarController.cs | 6 +- BackEnd/Timeline/Controllers/UserController.cs | 2 +- .../Services/User/Avatar/IUserAvatarService.cs | 8 +- .../Services/User/Avatar/Resource.Designer.cs | 90 ++++++++++++++ .../Timeline/Services/User/Avatar/Resource.resx | 129 +++++++++++++++++++++ .../Services/User/Avatar/UserAvatarService.cs | 14 ++- .../Timeline/Services/User/IUserDeleteService.cs | 2 +- .../Timeline/Services/User/UserDeleteService.cs | 2 +- BackEnd/Timeline/Timeline.csproj | 9 ++ 9 files changed, 247 insertions(+), 15 deletions(-) create mode 100644 BackEnd/Timeline/Services/User/Avatar/Resource.Designer.cs create mode 100644 BackEnd/Timeline/Services/User/Avatar/Resource.resx (limited to 'BackEnd/Timeline') diff --git a/BackEnd/Timeline/Controllers/UserAvatarController.cs b/BackEnd/Timeline/Controllers/UserAvatarController.cs index 7d455fc6..c280f033 100644 --- a/BackEnd/Timeline/Controllers/UserAvatarController.cs +++ b/BackEnd/Timeline/Controllers/UserAvatarController.cs @@ -64,7 +64,7 @@ namespace Timeline.Controllers return NotFound(ErrorResponse.UserCommon.NotExist()); } - return await DataCacheHelper.GenerateActionResult(this, () => _service.GetAvatarDigest(id), () => _service.GetAvatar(id)); + return await DataCacheHelper.GenerateActionResult(this, () => _service.GetAvatarDigestAsync(id), () => _service.GetAvatarAsync(id)); } /// @@ -102,7 +102,7 @@ namespace Timeline.Controllers try { - var digest = await _service.SetAvatar(id, body); + var digest = await _service.SetAvatarAsync(id, body); _logger.LogInformation(Log.Format(LogPutSuccess, ("Username", username), ("Mime Type", Request.ContentType))); @@ -159,7 +159,7 @@ namespace Timeline.Controllers return BadRequest(ErrorResponse.UserCommon.NotExist()); } - await _service.DeleteAvatar(id); + await _service.DeleteAvatarAsync(id); return Ok(); } } diff --git a/BackEnd/Timeline/Controllers/UserController.cs b/BackEnd/Timeline/Controllers/UserController.cs index a48a1b73..38d5d70c 100644 --- a/BackEnd/Timeline/Controllers/UserController.cs +++ b/BackEnd/Timeline/Controllers/UserController.cs @@ -168,7 +168,7 @@ namespace Timeline.Controllers { try { - var delete = await _userDeleteService.DeleteUser(username); + var delete = await _userDeleteService.DeleteUserAsync(username); if (delete) return Ok(CommonDeleteResponse.Delete()); else diff --git a/BackEnd/Timeline/Services/User/Avatar/IUserAvatarService.cs b/BackEnd/Timeline/Services/User/Avatar/IUserAvatarService.cs index fda35aac..7ec855aa 100644 --- a/BackEnd/Timeline/Services/User/Avatar/IUserAvatarService.cs +++ b/BackEnd/Timeline/Services/User/Avatar/IUserAvatarService.cs @@ -14,7 +14,7 @@ namespace Timeline.Services.User.Avatar /// User id. /// The avatar digest. /// Thrown when user does not exist. - Task GetAvatarDigest(long userId); + Task GetAvatarDigestAsync(long userId); /// /// Get avatar of a user. If the user has no avatar set, a default one is returned. @@ -22,7 +22,7 @@ namespace Timeline.Services.User.Avatar /// User id. /// The avatar. /// Thrown when user does not exist. - Task GetAvatar(long userId); + Task GetAvatarAsync(long userId); /// /// Set avatar for a user. @@ -33,13 +33,13 @@ namespace Timeline.Services.User.Avatar /// Thrown if is null. /// Thrown when user does not exist. /// Thrown if avatar is of bad format. - Task SetAvatar(long userId, ByteData avatar); + Task SetAvatarAsync(long userId, ByteData avatar); /// /// Remove avatar of a user. /// /// User id. /// Thrown when user does not exist. - Task DeleteAvatar(long userId); + Task DeleteAvatarAsync(long userId); } } diff --git a/BackEnd/Timeline/Services/User/Avatar/Resource.Designer.cs b/BackEnd/Timeline/Services/User/Avatar/Resource.Designer.cs new file mode 100644 index 00000000..1c233a02 --- /dev/null +++ b/BackEnd/Timeline/Services/User/Avatar/Resource.Designer.cs @@ -0,0 +1,90 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Timeline.Services.User.Avatar { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resource { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resource() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Services.User.Avatar.Resource", typeof(Resource).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Avatar data entry of user {0} does not exist.. + /// + internal static string AvatarDataEntryNotExist { + get { + return ResourceManager.GetString("AvatarDataEntryNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Avatar of a user with id={0} is removed.. + /// + internal static string LogRemoveAvatar { + get { + return ResourceManager.GetString("LogRemoveAvatar", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Avatar of a user with id={0} is updated.. + /// + internal static string LogSetAvatar { + get { + return ResourceManager.GetString("LogSetAvatar", resourceCulture); + } + } + } +} diff --git a/BackEnd/Timeline/Services/User/Avatar/Resource.resx b/BackEnd/Timeline/Services/User/Avatar/Resource.resx new file mode 100644 index 00000000..7cc919e3 --- /dev/null +++ b/BackEnd/Timeline/Services/User/Avatar/Resource.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Avatar data entry of user {0} does not exist. + + + Avatar of a user with id={0} is removed. + + + Avatar of a user with id={0} is updated. + + \ No newline at end of file diff --git a/BackEnd/Timeline/Services/User/Avatar/UserAvatarService.cs b/BackEnd/Timeline/Services/User/Avatar/UserAvatarService.cs index 4f943e3a..92979a68 100644 --- a/BackEnd/Timeline/Services/User/Avatar/UserAvatarService.cs +++ b/BackEnd/Timeline/Services/User/Avatar/UserAvatarService.cs @@ -39,7 +39,7 @@ namespace Timeline.Services.User.Avatar _clock = clock; } - public async Task GetAvatarDigest(long userId) + public async Task GetAvatarDigestAsync(long userId) { var usernameChangeTime = await _basicUserService.GetUsernameLastModifiedTimeAsync(userId); @@ -61,7 +61,7 @@ namespace Timeline.Services.User.Avatar } } - public async Task GetAvatar(long userId) + public async Task GetAvatarAsync(long userId) { await _basicUserService.ThrowIfUserNotExist(userId); @@ -72,7 +72,7 @@ namespace Timeline.Services.User.Avatar return await _defaultUserAvatarProvider.GetDefaultAvatar(); } - var data = await _dataManager.GetEntryAndCheck(entity.DataTag, $"This is required by avatar of {userId}."); + var data = await _dataManager.GetEntryAndCheck(entity.DataTag, string.Format(Resource.AvatarDataEntryNotExist, userId)); if (entity.Type is null) { @@ -84,7 +84,7 @@ namespace Timeline.Services.User.Avatar return new ByteData(data, entity.Type); } - public async Task SetAvatar(long userId, ByteData avatar) + public async Task SetAvatarAsync(long userId, ByteData avatar) { if (avatar is null) throw new ArgumentNullException(nameof(avatar)); @@ -126,10 +126,12 @@ namespace Timeline.Services.User.Avatar await transaction.CommitAsync(); + _logger.LogInformation(Resource.LogSetAvatar, userId); + return new CacheableDataDigest(tag, now); } - public async Task DeleteAvatar(long userId) + public async Task DeleteAvatarAsync(long userId) { await _basicUserService.ThrowIfUserNotExist(userId); @@ -149,6 +151,8 @@ namespace Timeline.Services.User.Avatar await _database.SaveChangesAsync(); await transaction.CommitAsync(); + + _logger.LogInformation(Resource.LogRemoveAvatar, userId); } } } diff --git a/BackEnd/Timeline/Services/User/IUserDeleteService.cs b/BackEnd/Timeline/Services/User/IUserDeleteService.cs index ce9448ac..992a565c 100644 --- a/BackEnd/Timeline/Services/User/IUserDeleteService.cs +++ b/BackEnd/Timeline/Services/User/IUserDeleteService.cs @@ -13,6 +13,6 @@ namespace Timeline.Services.User /// Thrown if is null. /// Thrown when is of bad format. /// Thrown when deleting root user. - Task DeleteUser(string username); + Task DeleteUserAsync(string username); } } diff --git a/BackEnd/Timeline/Services/User/UserDeleteService.cs b/BackEnd/Timeline/Services/User/UserDeleteService.cs index 94b15d33..e0391841 100644 --- a/BackEnd/Timeline/Services/User/UserDeleteService.cs +++ b/BackEnd/Timeline/Services/User/UserDeleteService.cs @@ -27,7 +27,7 @@ namespace Timeline.Services.User _timelinePostService = timelinePostService; } - public async Task DeleteUser(string username) + public async Task DeleteUserAsync(string username) { if (username == null) throw new ArgumentNullException(nameof(username)); diff --git a/BackEnd/Timeline/Timeline.csproj b/BackEnd/Timeline/Timeline.csproj index 4c40f209..3ddcecaf 100644 --- a/BackEnd/Timeline/Timeline.csproj +++ b/BackEnd/Timeline/Timeline.csproj @@ -163,6 +163,11 @@ True Resource.resx + + True + True + Resource.resx + True True @@ -264,6 +269,10 @@ ResXFileCodeGenerator Resource.Designer.cs + + ResXFileCodeGenerator + Resource.Designer.cs + ResXFileCodeGenerator Resource.Designer.cs -- cgit v1.2.3