From 34bc1f48cb11527476eefcb4b7462f4063613c30 Mon Sep 17 00:00:00 2001 From: Florian Dupret <34862846+sephrat@users.noreply.github.com> Date: Mon, 17 Jan 2022 11:11:11 +0100 Subject: [PATCH] Fix error when multiple media servers configured --- src/Ombi.Store/Entities/EmbyEpisode.cs | 7 ++++--- src/Ombi.Store/Entities/IMediaServerContent.cs | 2 +- src/Ombi.Store/Entities/JellyfinEpisode.cs | 5 +++-- src/Ombi.Store/Entities/MediaServerContent.cs | 3 ++- src/Ombi.Store/Entities/PlexEpisode.cs | 4 ++-- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/Ombi.Store/Entities/EmbyEpisode.cs b/src/Ombi.Store/Entities/EmbyEpisode.cs index 1d2a03b46..97fdb09b1 100644 --- a/src/Ombi.Store/Entities/EmbyEpisode.cs +++ b/src/Ombi.Store/Entities/EmbyEpisode.cs @@ -51,12 +51,13 @@ namespace Ombi.Store.Entities get => (EmbyContent)Series; set => Series = value; } - - public override IMediaServerContent SeriesIsIn(List content) + + public override IMediaServerContent SeriesIsIn(ICollection content) { - return content.Cast().FirstOrDefault( + return content.OfType().FirstOrDefault( x => x.EmbyId == this.EmbySeries.EmbyId); } + public override bool IsIn(IMediaServerContent content) { return content.Episodes.Cast().Any(x => x.EmbyId == this.EmbyId); diff --git a/src/Ombi.Store/Entities/IMediaServerContent.cs b/src/Ombi.Store/Entities/IMediaServerContent.cs index 3e78dffcc..25e4d5f50 100644 --- a/src/Ombi.Store/Entities/IMediaServerContent.cs +++ b/src/Ombi.Store/Entities/IMediaServerContent.cs @@ -43,7 +43,7 @@ namespace Ombi.Store.Entities public IMediaServerContent Series { get; set; } - public IMediaServerContent SeriesIsIn(List content); + public IMediaServerContent SeriesIsIn(ICollection content); public bool IsIn(IMediaServerContent content); } diff --git a/src/Ombi.Store/Entities/JellyfinEpisode.cs b/src/Ombi.Store/Entities/JellyfinEpisode.cs index 890cf3c2a..1c0ac423e 100644 --- a/src/Ombi.Store/Entities/JellyfinEpisode.cs +++ b/src/Ombi.Store/Entities/JellyfinEpisode.cs @@ -53,11 +53,12 @@ namespace Ombi.Store.Entities set => Series = value; } - public override IMediaServerContent SeriesIsIn(List content) + public override IMediaServerContent SeriesIsIn(ICollection content) { - return content.Cast().FirstOrDefault( + return content.OfType().FirstOrDefault( x => x.JellyfinId == this.JellyfinSeries.JellyfinId); } + public override bool IsIn(IMediaServerContent content) { return content.Episodes.Cast().Any(x => x.JellyfinId == this.JellyfinId); diff --git a/src/Ombi.Store/Entities/MediaServerContent.cs b/src/Ombi.Store/Entities/MediaServerContent.cs index ab99090f4..3bccfea06 100644 --- a/src/Ombi.Store/Entities/MediaServerContent.cs +++ b/src/Ombi.Store/Entities/MediaServerContent.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations.Schema; using Ombi.Store.Repository; @@ -40,7 +41,7 @@ namespace Ombi.Store.Entities public IMediaServerContent Series { get; set; } - public abstract IMediaServerContent SeriesIsIn(List content); + public abstract IMediaServerContent SeriesIsIn(ICollection content); public abstract bool IsIn(IMediaServerContent content); } } \ No newline at end of file diff --git a/src/Ombi.Store/Entities/PlexEpisode.cs b/src/Ombi.Store/Entities/PlexEpisode.cs index 9d7ca87c8..ac482d7ac 100644 --- a/src/Ombi.Store/Entities/PlexEpisode.cs +++ b/src/Ombi.Store/Entities/PlexEpisode.cs @@ -23,9 +23,9 @@ namespace Ombi.Store.Entities set => Series = value; } - public override IMediaServerContent SeriesIsIn(List content) + public override IMediaServerContent SeriesIsIn(ICollection content) { - return content.Cast().FirstOrDefault( + return content.OfType().FirstOrDefault( x => x.Key == this.PlexSeries.Key); }