public Decision IsSatisfiedBy(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) { if (localEpisode.Series.SeriesType != SeriesTypes.Anime) { _logger.Debug("Series type is not Anime, skipping check"); return(Decision.Accept()); } if (!_buildFileNames.RequiresAbsoluteEpisodeNumber(localEpisode.Series, localEpisode.Episodes)) { _logger.Debug("File name format does not require absolute episode number, skipping check"); return(Decision.Accept()); } foreach (var episode in localEpisode.Episodes) { var airDateUtc = episode.AirDateUtc; var absoluteEpisodeNumber = episode.AbsoluteEpisodeNumber; if (airDateUtc.HasValue && airDateUtc.Value.Before(DateTime.UtcNow.AddDays(-1))) { _logger.Debug("Episode aired more than 1 day ago"); continue; } if (!absoluteEpisodeNumber.HasValue) { _logger.Debug("Episode does not have an absolute episode number and recently aired"); return(Decision.Reject("Episode does not have an absolute episode number and recently aired")); } } return(Decision.Accept()); }