Example #1
0
        public List <(string key, string error)> IsValid(IPlex plex, IFileMover files, bool isNewEntry = false)
        {
            var errs = new List <(string key, string error)>();

            if (!plex.ResolvePlexId(this) && !isNewEntry)
            {
                errs.Add((nameof(Series) + "." + nameof(Name), "The given name could not be found on the Plex server."));
            }

            if (SearchNewEpisodes)
            {
                if (string.IsNullOrWhiteSpace(EpGuidesName))
                {
                    errs.Add((nameof(Series) + "." + nameof(EpGuidesName), "If searching for new episodes is enabled, a search name needs to be specified."));
                }
                if (string.IsNullOrWhiteSpace(SubtitlesName))
                {
                    if (isNewEntry)
                    {
                        SubtitlesName = Name;
                    }
                    else
                    {
                        errs.Add((nameof(Series) + "." + nameof(SubtitlesName), "If searching for new episodes is enabled, a search name needs to be specified."));
                    }
                }
                if (string.IsNullOrWhiteSpace(VideoSearch))
                {
                    if (isNewEntry)
                    {
                        VideoSearch = Name;
                    }
                    else
                    {
                        errs.Add((nameof(Series) + "." + nameof(VideoSearch), "If searching for new episodes is enabled, a search name needs to be specified."));
                    }
                }
            }

            if (errs.Count == 0)
            {
                if (!files.ValidateSeriesPath(this, isNewEntry))
                {
                    errs.Add((nameof(Series) + "." + nameof(DirectoryName), "The directory does not exist and could not be created."));
                }
            }

            return(errs);
        }