aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-12-03 16:40:27 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-12-03 16:40:27 -0500
commit61a78e2be961a7deb98558f2b872c417b03c885d (patch)
treec332a0492d731ed0d5830461d68af0aa491f0e82 /MediaBrowser.Controller
parentd2332264b399ea57e81732bcae2cbf450ede443d (diff)
fixes #643 - Support episodes directly in series folder
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Entities/TV/Season.cs24
1 files changed, 21 insertions, 3 deletions
diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs
index 218c9fa5b6..0d9e5ec6d1 100644
--- a/MediaBrowser.Controller/Entities/TV/Season.cs
+++ b/MediaBrowser.Controller/Entities/TV/Season.cs
@@ -149,16 +149,34 @@ namespace MediaBrowser.Controller.Entities.TV
return IndexNumber != null ? IndexNumber.Value.ToString("0000") : Name;
}
+ private IEnumerable<Episode> GetEpisodes()
+ {
+ var series = Series;
+
+ if (series != null && series.ContainsEpisodesWithoutSeasonFolders)
+ {
+ var seasonNumber = IndexNumber;
+
+ if (seasonNumber.HasValue)
+ {
+ return series.RecursiveChildren.OfType<Episode>()
+ .Where(i => i.ParentIndexNumber.HasValue && i.ParentIndexNumber.Value == seasonNumber.Value);
+ }
+ }
+
+ return Children.OfType<Episode>();
+ }
+
[IgnoreDataMember]
public bool IsMissingSeason
{
- get { return LocationType == Model.Entities.LocationType.Virtual && Children.OfType<Episode>().All(i => i.IsMissingEpisode); }
+ get { return LocationType == Model.Entities.LocationType.Virtual && GetEpisodes().All(i => i.IsMissingEpisode); }
}
[IgnoreDataMember]
public bool IsUnaired
{
- get { return Children.OfType<Episode>().All(i => i.IsUnaired); }
+ get { return GetEpisodes().All(i => i.IsUnaired); }
}
[IgnoreDataMember]
@@ -170,7 +188,7 @@ namespace MediaBrowser.Controller.Entities.TV
[IgnoreDataMember]
public bool IsMissingOrVirtualUnaired
{
- get { return LocationType == Model.Entities.LocationType.Virtual && Children.OfType<Episode>().All(i => i.IsVirtualUnaired || i.IsMissingEpisode); }
+ get { return LocationType == Model.Entities.LocationType.Virtual && GetEpisodes().All(i => i.IsVirtualUnaired || i.IsMissingEpisode); }
}
[IgnoreDataMember]