Explorar o código

Merge pull request #668 from hawken93/prepare_for_reports_module

Return Audio objects from MusicAlbum.Tracks
Andrew Rabert %!s(int64=6) %!d(string=hai) anos
pai
achega
090fea21ea

+ 13 - 1
Emby.Server.Implementations/Data/SqliteItemRepository.cs

@@ -4712,9 +4712,21 @@ namespace Emby.Server.Implementations.Data
                         continue;
                         continue;
                     }
                     }
 
 
-                    var paramName = "@HasAnyProviderId" + index;
+                    // TODO this seems to be an idea for a better schema where ProviderIds are their own table
+                    //      buut this is not implemented
                     //hasProviderIds.Add("(COALESCE((select value from ProviderIds where ItemId=Guid and Name = '" + pair.Key + "'), '') <> " + paramName + ")");
                     //hasProviderIds.Add("(COALESCE((select value from ProviderIds where ItemId=Guid and Name = '" + pair.Key + "'), '') <> " + paramName + ")");
+
+                    // TODO this is a really BAD way to do it since the pair:
+                    //      Tmdb, 1234 matches Tmdb=1234 but also Tmdb=1234567
+                    //      and maybe even NotTmdb=1234.
+
+                    // this is a placeholder for this specific pair to correlate it in the bigger query
+                    var paramName = "@HasAnyProviderId" + index;
+
+                    // this is a search for the placeholder
                     hasProviderIds.Add("ProviderIds like " + paramName + "");
                     hasProviderIds.Add("ProviderIds like " + paramName + "");
+
+                    // this replaces the placeholder with a value, here: %key=val%
                     if (statement != null)
                     if (statement != null)
                     {
                     {
                         statement.TryBind(paramName, "%" + pair.Key + "=" + pair.Value + "%");
                         statement.TryBind(paramName, "%" + pair.Key + "=" + pair.Value + "%");

+ 1 - 1
MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs

@@ -96,7 +96,7 @@ namespace MediaBrowser.Controller.Entities.Audio
         /// </summary>
         /// </summary>
         /// <value>The tracks.</value>
         /// <value>The tracks.</value>
         [IgnoreDataMember]
         [IgnoreDataMember]
-        public IEnumerable<BaseItem> Tracks => GetRecursiveChildren(i => i is Audio);
+        public IEnumerable<Audio> Tracks => GetRecursiveChildren(i => i is Audio).Cast<Audio>();
 
 
         protected override IEnumerable<BaseItem> GetEligibleChildrenForRecursiveChildren(User user)
         protected override IEnumerable<BaseItem> GetEligibleChildrenForRecursiveChildren(User user)
         {
         {