mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-05-13 13:22:28 +00:00
Fix memory leak in GameServer (#731)
* Convert entities to serializable after aggregating rather before * Cache instances of CustomXmlSerializer and create readonly constants for reused settings * Change CustomXmlSerializer and serializer cache to work with deserializer
This commit is contained in:
parent
0253864f5e
commit
2210541894
16 changed files with 125 additions and 147 deletions
|
@ -153,14 +153,13 @@ public class ReviewController : ControllerBase
|
|||
SlotEntity? slot = await this.database.Slots.FirstOrDefaultAsync(s => s.SlotId == slotId);
|
||||
if (slot == null) return this.BadRequest();
|
||||
|
||||
List<GameReview> reviews = await this.database.Reviews.ByGameVersion(gameVersion, true)
|
||||
List<GameReview> reviews = (await this.database.Reviews.ByGameVersion(gameVersion, true)
|
||||
.Where(r => r.SlotId == slotId)
|
||||
.OrderByDescending(r => r.ThumbsUp - r.ThumbsDown)
|
||||
.ThenByDescending(r => r.Timestamp)
|
||||
.Skip(Math.Max(0, pageStart - 1))
|
||||
.Take(Math.Min(pageSize, 30))
|
||||
.Select(r => GameReview.CreateFromEntity(r, token))
|
||||
.ToListAsync();
|
||||
.ToListAsync()).ToSerializableList(r => GameReview.CreateFromEntity(r, token));
|
||||
|
||||
|
||||
return this.Ok(new ReviewResponse(reviews, reviews.LastOrDefault()?.Timestamp ?? TimeHelper.TimestampMillis, pageStart + Math.Min(pageSize, 30)));
|
||||
|
@ -179,13 +178,12 @@ public class ReviewController : ControllerBase
|
|||
|
||||
if (targetUserId == 0) return this.BadRequest();
|
||||
|
||||
List<GameReview> reviews = await this.database.Reviews.ByGameVersion(gameVersion, true)
|
||||
List<GameReview> reviews = (await this.database.Reviews.ByGameVersion(gameVersion, true)
|
||||
.Where(r => r.ReviewerId == targetUserId)
|
||||
.OrderByDescending(r => r.Timestamp)
|
||||
.Skip(Math.Max(0, pageStart - 1))
|
||||
.Take(Math.Min(pageSize, 30))
|
||||
.Select(r => GameReview.CreateFromEntity(r, token))
|
||||
.ToListAsync();
|
||||
.ToListAsync()).ToSerializableList(r => GameReview.CreateFromEntity(r, token));
|
||||
|
||||
return this.Ok(new ReviewResponse(reviews, reviews.LastOrDefault()?.Timestamp ?? TimeHelper.TimestampMillis, pageStart));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue