From 23c435e03675ecd5cb67f2c5c7bfe28d4d936570 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sat, 27 Dec 2025 15:57:28 +0800 Subject: [PATCH] :bug: Fix first generated rewind didn't have account data --- DysonNetwork.Pass/Account/AccountService.cs | 8 ++++++++ DysonNetwork.Pass/Rewind/AccountRewindService.cs | 14 ++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/DysonNetwork.Pass/Account/AccountService.cs b/DysonNetwork.Pass/Account/AccountService.cs index 264a821..97f7b23 100644 --- a/DysonNetwork.Pass/Account/AccountService.cs +++ b/DysonNetwork.Pass/Account/AccountService.cs @@ -54,6 +54,14 @@ public class AccountService( await cache.RemoveGroupAsync($"{AccountCachePrefix}{account.Id}"); } + public async Task GetAccount(Guid id) + { + return await db.Accounts + .Where(a => a.Id == id) + .Include(a => a.Profile) + .FirstOrDefaultAsync(); + } + public async Task LookupAccount(string probe) { var account = await db.Accounts.Where(a => EF.Functions.ILike(a.Name, probe)).FirstOrDefaultAsync(); diff --git a/DysonNetwork.Pass/Rewind/AccountRewindService.cs b/DysonNetwork.Pass/Rewind/AccountRewindService.cs index d9bbb7f..86c76dc 100644 --- a/DysonNetwork.Pass/Rewind/AccountRewindService.cs +++ b/DysonNetwork.Pass/Rewind/AccountRewindService.cs @@ -9,6 +9,7 @@ namespace DysonNetwork.Pass.Rewind; public class AccountRewindService( IHttpClientFactory httpClientFactory, AppDatabase db, + Account.AccountService accounts, PassRewindService passRewindSrv ) { @@ -36,7 +37,7 @@ public class AccountRewindService( private async Task CreateRewindPoint(Guid accountId) { const int currentYear = 2025; - var rewindRequest = new RequestRewindEvent { AccountId = accountId.ToString(), Year = currentYear}; + var rewindRequest = new RequestRewindEvent { AccountId = accountId.ToString(), Year = currentYear }; var rewindEventTasks = new List> { @@ -61,6 +62,10 @@ public class AccountRewindService( db.RewindPoints.Add(point); await db.SaveChangesAsync(); + var account = await accounts.GetAccount(accountId); + if (account is not null) + point.Account = account; // Fill the data + return point; } @@ -78,7 +83,7 @@ public class AccountRewindService( return await CreateRewindPoint(accountId); } - + public async Task GetPublicRewindPoint(string code) { var point = await db.RewindPoints @@ -121,7 +126,7 @@ public class AccountRewindService( return point; } - + private static string _GenerateRandomString(int length) { const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; @@ -133,6 +138,7 @@ public class AccountRewindService( rng.GetBytes(bytes); result[i] = chars[bytes[0] % chars.Length]; } + return new string(result); } -} +} \ No newline at end of file