public int Calculate(Series series, string title, int indexerId) { _logger.Trace("Calculating preferred word score for '{0}'", title); var releaseProfiles = _releaseProfileService.EnabledForTags(series.Tags, indexerId); var matchingPairs = new List <KeyValuePair <string, int> >(); foreach (var releaseProfile in releaseProfiles) { foreach (var preferredPair in releaseProfile.Preferred) { var term = preferredPair.Key; if (_termMatcherService.IsMatch(term, title)) { matchingPairs.Add(preferredPair); } } } var score = matchingPairs.Sum(p => p.Value); _logger.Trace("Calculated preferred word score for '{0}': {1}", title, score); return(score); }
public List <KeyValuePair <string, int> > GetMatchingPreferredWordsAndScores(Series series, string title, int indexerId) { var releaseProfiles = _releaseProfileService.EnabledForTags(series.Tags, indexerId); var matchingPairs = new List <KeyValuePair <string, int> >(); foreach (var releaseProfile in releaseProfiles) { foreach (var preferredPair in releaseProfile.Preferred) { var term = preferredPair.Key; if (_termMatcherService.IsMatch(term, title)) { matchingPairs.Add(preferredPair); } } } return(matchingPairs); }
private List <string> ContainsAny(List <string> terms, string title) { return(terms.Where(t => _termMatcherService.IsMatch(t, title)).ToList()); }