Skip to content

Commit

Permalink
Change GetUsersByPointTotals to fix caching bug #358
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffputz committed Feb 1, 2024
1 parent cd2e96a commit f73222f
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 7 deletions.
8 changes: 4 additions & 4 deletions src/PopForums.Sql/Repositories/UserRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -233,19 +233,19 @@ await _sqlObjectFactory.GetConnection().UsingAsync(connection =>
return list.Result.ToList();
}

public Dictionary<User, int> GetUsersByPointTotals(int top)
public Dictionary<int, (User, int)> GetUsersByPointTotals(int top)
{
var key = CacheKeys.PointTotals + top;
var cacheObject = _cacheHelper.GetCacheObject<Dictionary<User, int>>(key);
var cacheObject = _cacheHelper.GetCacheObject<Dictionary<int, (User, int)>>(key);
if (cacheObject != null)
return cacheObject;
var list = new Dictionary<User, int>();
var list = new Dictionary<int, (User, int)>();
_sqlObjectFactory.GetConnection().Using(connection =>
connection.Query<User, int, User>(
$"SELECT TOP {top} {PopForumsUserColumns}, pf_Profile.Points FROM pf_PopForumsUser JOIN pf_Profile ON pf_PopForumsUser.UserID = pf_Profile.UserID ORDER BY pf_Profile.Points DESC",
(user, points) =>
{
list.Add(user, points);
list.Add(user.UserID, (user, points));
return user;
}, splitOn: "Points"));
_cacheHelper.SetCacheObject(key, list, 60);
Expand Down
2 changes: 1 addition & 1 deletion src/PopForums/Repositories/IUserRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public interface IUserRepository
Task DeleteUser(User user);
Task<List<User>> GetUsersFromIDs(IList<int> ids);
Task<int> GetTotalUsers();
Dictionary<User, int> GetUsersByPointTotals(int top);
Dictionary<int, (User, int)> GetUsersByPointTotals(int top);
Task<List<UserResult>> GetRecentUsers();
Task UpdateTokenExpiration(User user, DateTime? tokenExpiration);
Task UpdateRefreshToken(User user, string refreshToken);
Expand Down
4 changes: 2 additions & 2 deletions src/PopForums/Services/UserService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public interface IUserService
Task<List<User>> GetUsersFromIDs(IList<int> ids);
Task<int> GetTotalUsers();
Task<List<User>> GetSubscribedUsers();
Dictionary<User, int> GetUsersByPointTotals(int top);
Dictionary<int, (User, int)> GetUsersByPointTotals(int top);
Task<List<UserResult>> GetRecentUsers();
Task UpdateTokenExpiration(User user, DateTime? tokenExpiration);
Task UpdateRefreshToken(User user, string refreshToken);
Expand Down Expand Up @@ -529,7 +529,7 @@ public async Task<List<User>> GetSubscribedUsers()
return await _userRepository.GetSubscribedUsers();
}

public Dictionary<User, int> GetUsersByPointTotals(int top)
public Dictionary<int, (User, int)> GetUsersByPointTotals(int top)
{
return _userRepository.GetUsersByPointTotals(top);
}
Expand Down

0 comments on commit f73222f

Please sign in to comment.