aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-03-20 15:53:22 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-03-20 15:53:22 -0400
commitb4ea519395031f87a4c5154c34bccc621fc2dd95 (patch)
treea50eced5d0fc610870747d5a39982c5144103ced /MediaBrowser.Controller
parent6807b2dd71d8a7ece0c1809449fffa78d4d62d3a (diff)
update db querying
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs25
-rw-r--r--MediaBrowser.Controller/Entities/InternalItemsQuery.cs9
-rw-r--r--MediaBrowser.Controller/Entities/UserViewBuilder.cs28
3 files changed, 48 insertions, 14 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index efb784153a..5a5fe2a9f1 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -1094,13 +1094,6 @@ namespace MediaBrowser.Controller.Entities
return true;
}
- // Apply year filter
- if (query.Years.Length > 0)
- {
- Logger.Debug("Query requires post-filtering due to Years");
- return true;
- }
-
// Apply official rating filter
if (query.OfficialRatings.Length > 0)
{
@@ -1139,12 +1132,6 @@ namespace MediaBrowser.Controller.Entities
return true;
}
- if (query.Years.Length > 0)
- {
- Logger.Debug("Query requires post-filtering due to Years");
- return true;
- }
-
if (query.OfficialRatings.Length > 0)
{
Logger.Debug("Query requires post-filtering due to OfficialRatings");
@@ -1205,6 +1192,18 @@ namespace MediaBrowser.Controller.Entities
return true;
}
+ if (query.AirDays.Length > 0)
+ {
+ Logger.Debug("Query requires post-filtering due to AirDays");
+ return true;
+ }
+
+ if (query.SeriesStatuses.Length > 0)
+ {
+ Logger.Debug("Query requires post-filtering due to SeriesStatuses");
+ return true;
+ }
+
return false;
}
diff --git a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
index 05031691c8..e2b393d4d9 100644
--- a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
+++ b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
@@ -103,17 +103,18 @@ namespace MediaBrowser.Controller.Entities
public string[] ChannelIds { get; set; }
internal List<Guid> ItemIdsFromPersonFilters { get; set; }
+ public int? ParentIndexNumber { get; set; }
public int? MaxParentalRating { get; set; }
public bool? IsCurrentSchema { get; set; }
public bool? HasDeadParentId { get; set; }
public bool? IsOffline { get; set; }
- public LocationType? LocationType { get; set; }
public Guid? ParentId { get; set; }
public string[] AncestorIds { get; set; }
public string[] TopParentIds { get; set; }
+ public LocationType[] LocationTypes { get; set; }
public LocationType[] ExcludeLocationTypes { get; set; }
public string[] PresetViews { get; set; }
public SourceType[] SourceTypes { get; set; }
@@ -121,6 +122,9 @@ namespace MediaBrowser.Controller.Entities
public TrailerType[] TrailerTypes { get; set; }
public TrailerType[] ExcludeTrailerTypes { get; set; }
+ public DayOfWeek[] AirDays { get; set; }
+ public SeriesStatus[] SeriesStatuses { get; set; }
+
public InternalItemsQuery()
{
BlockUnratedItems = new UnratedItem[] { };
@@ -144,12 +148,15 @@ namespace MediaBrowser.Controller.Entities
AncestorIds = new string[] { };
TopParentIds = new string[] { };
ExcludeTags = new string[] { };
+ LocationTypes = new LocationType[] { };
ExcludeLocationTypes = new LocationType[] { };
PresetViews = new string[] { };
SourceTypes = new SourceType[] { };
ExcludeSourceTypes = new SourceType[] { };
TrailerTypes = new TrailerType[] { };
ExcludeTrailerTypes = new TrailerType[] { };
+ AirDays = new DayOfWeek[] { };
+ SeriesStatuses = new SeriesStatus[] { };
}
public InternalItemsQuery(User user)
diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
index 4439b9c6d1..c33212619b 100644
--- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs
+++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
@@ -1709,6 +1709,34 @@ namespace MediaBrowser.Controller.Entities
}
}
+ if (query.ParentIndexNumber.HasValue)
+ {
+ var filterValue = query.ParentIndexNumber.Value;
+
+ if (item.ParentIndexNumber.HasValue && item.ParentIndexNumber.Value != filterValue)
+ {
+ return false;
+ }
+ }
+
+ if (query.AirDays.Length > 0)
+ {
+ var ok = new[] { item }.OfType<Series>().Any(p => p.AirDays != null && query.AirDays.Any(d => p.AirDays.Contains(d)));
+ if (!ok)
+ {
+ return false;
+ }
+ }
+
+ if (query.SeriesStatuses.Length > 0)
+ {
+ var ok = new[] { item }.OfType<Series>().Any(p => p.Status.HasValue && query.SeriesStatuses.Contains(p.Status.Value));
+ if (!ok)
+ {
+ return false;
+ }
+ }
+
return true;
}