Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
 public IEnumerable <Parameter> GetByRuleId(int ruleId)
 {
     return(_autoMoveRepository.GetParametersByRuleId(ruleId));
 }