private void AddFeedToDict([NotNull] IDictionary<FeedUri, Feed> dictionary, [CanBeNull] FeedUri feedUri, [NotNull] Requirements requirements)
{
if (feedUri == null || dictionary.ContainsKey(feedUri)) return;
var feed = _feedManager[feedUri];
if (feed.MinInjectorVersion != null && FeedElement.ZeroInstallVersion < feed.MinInjectorVersion)
{
Log.Warn($"The solver version is too old. The feed '{feedUri}' requires at least version {feed.MinInjectorVersion} but the installed version is {FeedElement.ZeroInstallVersion}. Try updating Zero Install.");
return;
}
dictionary.Add(feedUri, feed);
foreach (var reference in feed.Feeds)
{
if (reference.Architecture.IsCompatible(requirements.Architecture) &&
(reference.Languages.Count == 0 || reference.Languages.ContainsAny(requirements.Languages, ignoreCountry: true)))
AddFeedToDict(dictionary, reference.Source, requirements);
}
}