|
|
|
@ -11,36 +11,34 @@ public static class MediaItemsForCollection |
|
|
|
IArtistRepository artistRepository, |
|
|
|
IArtistRepository artistRepository, |
|
|
|
CollectionKey collectionKey) |
|
|
|
CollectionKey collectionKey) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
var result = new List<MediaItem>(); |
|
|
|
|
|
|
|
|
|
|
|
switch (collectionKey.CollectionType) |
|
|
|
switch (collectionKey.CollectionType) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case ProgramScheduleItemCollectionType.Collection: |
|
|
|
case ProgramScheduleItemCollectionType.Collection: |
|
|
|
List<MediaItem> collectionItems = |
|
|
|
result.AddRange(await mediaCollectionRepository.GetItems(collectionKey.CollectionId ?? 0)); |
|
|
|
await mediaCollectionRepository.GetItems(collectionKey.CollectionId ?? 0); |
|
|
|
break; |
|
|
|
return collectionItems; |
|
|
|
|
|
|
|
case ProgramScheduleItemCollectionType.TelevisionShow: |
|
|
|
case ProgramScheduleItemCollectionType.TelevisionShow: |
|
|
|
List<Episode> showItems = |
|
|
|
result.AddRange(await televisionRepository.GetShowItems(collectionKey.MediaItemId ?? 0)); |
|
|
|
await televisionRepository.GetShowItems(collectionKey.MediaItemId ?? 0); |
|
|
|
break; |
|
|
|
return showItems.Cast<MediaItem>().ToList(); |
|
|
|
|
|
|
|
case ProgramScheduleItemCollectionType.TelevisionSeason: |
|
|
|
case ProgramScheduleItemCollectionType.TelevisionSeason: |
|
|
|
List<Episode> seasonItems = |
|
|
|
result.AddRange(await televisionRepository.GetSeasonItems(collectionKey.MediaItemId ?? 0)); |
|
|
|
await televisionRepository.GetSeasonItems(collectionKey.MediaItemId ?? 0); |
|
|
|
break; |
|
|
|
return seasonItems.Cast<MediaItem>().ToList(); |
|
|
|
|
|
|
|
case ProgramScheduleItemCollectionType.Artist: |
|
|
|
case ProgramScheduleItemCollectionType.Artist: |
|
|
|
List<MusicVideo> artistItems = |
|
|
|
result.AddRange(await artistRepository.GetArtistItems(collectionKey.MediaItemId ?? 0)); |
|
|
|
await artistRepository.GetArtistItems(collectionKey.MediaItemId ?? 0); |
|
|
|
break; |
|
|
|
return artistItems.Cast<MediaItem>().ToList(); |
|
|
|
|
|
|
|
case ProgramScheduleItemCollectionType.MultiCollection: |
|
|
|
case ProgramScheduleItemCollectionType.MultiCollection: |
|
|
|
List<MediaItem> multiCollectionItems = |
|
|
|
result.AddRange( |
|
|
|
await mediaCollectionRepository.GetMultiCollectionItems( |
|
|
|
await mediaCollectionRepository.GetMultiCollectionItems(collectionKey.MultiCollectionId ?? 0)); |
|
|
|
collectionKey.MultiCollectionId ?? 0); |
|
|
|
break; |
|
|
|
return multiCollectionItems; |
|
|
|
|
|
|
|
case ProgramScheduleItemCollectionType.SmartCollection: |
|
|
|
case ProgramScheduleItemCollectionType.SmartCollection: |
|
|
|
List<MediaItem> smartCollectionItems = |
|
|
|
result.AddRange( |
|
|
|
await mediaCollectionRepository.GetSmartCollectionItems( |
|
|
|
await mediaCollectionRepository.GetSmartCollectionItems(collectionKey.SmartCollectionId ?? 0)); |
|
|
|
collectionKey.SmartCollectionId ?? 0); |
|
|
|
break; |
|
|
|
return smartCollectionItems; |
|
|
|
|
|
|
|
default: |
|
|
|
default: |
|
|
|
return new List<MediaItem>(); |
|
|
|
throw new ArgumentOutOfRangeException(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result.DistinctBy(x => x.Id).ToList(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|