From 78caf588be896ae74b2cf59a1f46964ac188d167 Mon Sep 17 00:00:00 2001 From: XShine555 Date: Tue, 14 Jul 2026 13:26:04 +0200 Subject: [PATCH] fix(backend): order listening history by recency and cap to 15 tracks --- .../Tracks/GetListeningHistory.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/Musify.Application/Tracks/GetListeningHistory.cs b/backend/Musify.Application/Tracks/GetListeningHistory.cs index 8a50d0c..99332c1 100644 --- a/backend/Musify.Application/Tracks/GetListeningHistory.cs +++ b/backend/Musify.Application/Tracks/GetListeningHistory.cs @@ -10,19 +10,19 @@ namespace Musify.Application.Tracks IDatabase database) : IQueryHandler> { + public const int ListSize = 15; + public ValueTask> Handle(GetListeningHistoryQuery query, CancellationToken cancellationToken) { var listeningHistory = database.ListeningHistories .Where(l => l.UserId == query.UserId) - .Select(l => l.TrackId) - .ToList(); - - var tracks = database.Tracks - .Where(t => listeningHistory.Contains(t.Id)) - .Select(TrackApplicationResponse.FromEntity) + .OrderByDescending(l => l.ListenedAt) + .Select(t => TrackApplicationResponse.FromEntity(t.Track)) + .Take(ListSize) + .DistinctBy(t => t.Id) .AsEnumerable(); - return ValueTask.FromResult(tracks); + return ValueTask.FromResult(listeningHistory); } } }