public Rule FindRule(ITorrent torrent) { var rules = _autoMoveRepository.GetRules() ?? new Rule[] {}; return((from rule in rules let parameters = _autoMoveRepository.GetParametersByRuleId(rule.Id) ?? new Parameter[] {} where parameters.All(p => MatchesTorrent(torrent, p)) select rule).FirstOrDefault()); }
private void OnTorrentCompleted(TorrentCompletedMessage message) { var rule = _ruleFinder.FindRule(message.Torrent); if (rule == null) { return; } var parameters = _autoMoveRepository.GetParametersByRuleId(rule.Id); var targetPath = _parameterValueReplacer.Replace(message.Torrent, parameters, rule.TargetPath); _messageBus.Publish(new MoveTorrentMessage(message.Torrent.InfoHash, targetPath)); }
public IEnumerable <Parameter> GetByRuleId(int ruleId) { return(_autoMoveRepository.GetParametersByRuleId(ruleId)); }