mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-22 06:13:22 -07:00
Consider only requested episodes in played progress
This commit is contained in:
parent
ccdc12008a
commit
c268717de5
1 changed files with 29 additions and 7 deletions
|
@ -905,26 +905,48 @@ namespace Ombi.Core.Engine
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class EpisodeKey
|
||||||
|
{
|
||||||
|
public int SeasonNumber;
|
||||||
|
public int EpisodeNumber;
|
||||||
|
}
|
||||||
|
|
||||||
private void CheckForPlayed(HideResult shouldHide, List<ChildRequests> childRequests)
|
private void CheckForPlayed(HideResult shouldHide, List<ChildRequests> childRequests)
|
||||||
{
|
{
|
||||||
var theMovieDbIds = childRequests.Select(x => x.Id);
|
var theMovieDbIds = childRequests.Select(x => x.Id);
|
||||||
foreach (var request in childRequests)
|
foreach (var request in childRequests)
|
||||||
{
|
{
|
||||||
// TODO: consider only episodes that are part of the request (request.SeasonRequests.Episodes)
|
var requestedEpisodes = getEpisodesKeys(request);
|
||||||
var playedCount = _userPlayedEpisodeRepository.GetAll().Count(x => x.TheMovieDbId == request.Id && x.UserId == request.RequestedUserId);
|
|
||||||
|
|
||||||
var toWatchCount = countRequestedEpisodes(request);
|
var playedEpisodes = _userPlayedEpisodeRepository
|
||||||
|
.GetAll()
|
||||||
|
.Where(x => x.TheMovieDbId == request.Id && x.UserId == request.RequestedUserId)
|
||||||
|
.AsEnumerable()
|
||||||
|
.Join(requestedEpisodes,
|
||||||
|
played => new { played.SeasonNumber, played.EpisodeNumber },
|
||||||
|
requested => new { requested.SeasonNumber, requested.EpisodeNumber },
|
||||||
|
(played, requested) => new { played });
|
||||||
|
|
||||||
|
var playedCount = playedEpisodes.Count();
|
||||||
|
var toWatchCount = requestedEpisodes.Count();
|
||||||
request.RequestedUserPlayedProgress = 100 * playedCount / toWatchCount;
|
request.RequestedUserPlayedProgress = 100 * playedCount / toWatchCount;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int countRequestedEpisodes(ChildRequests request)
|
private List<EpisodeKey> getEpisodesKeys(ChildRequests request)
|
||||||
{
|
{
|
||||||
int result = 0;
|
List<EpisodeKey> result = new List<EpisodeKey>();
|
||||||
foreach(var season in request.SeasonRequests)
|
foreach(var season in request.SeasonRequests)
|
||||||
{
|
{
|
||||||
result += season.Episodes.Count();
|
foreach(var episode in season.Episodes)
|
||||||
|
{
|
||||||
|
result.Add(new EpisodeKey
|
||||||
|
{
|
||||||
|
SeasonNumber = season.SeasonNumber,
|
||||||
|
EpisodeNumber = episode.EpisodeNumber
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue