Пример #1
0
        public NugetPackagePluginCatalog(string packageName, string packageVersion = null, bool includePrerelease                     = false, NuGetFeed packageFeed = null,
                                         string packagesFolder             = null, Action <TypeFinderCriteriaBuilder> configureFinder = null, Dictionary <string, TypeFinderCriteria> criterias = null,
                                         NugetPluginCatalogOptions options = null)
        {
            _packageName       = packageName;
            _packageVersion    = packageVersion;
            _includePrerelease = includePrerelease;
            _packageFeed       = packageFeed;

            PackagesFolder = packagesFolder ?? Path.Combine(Path.GetTempPath(), "NugetPackagePluginCatalog", Path.GetRandomFileName());

            if (!Directory.Exists(PackagesFolder))
            {
                Directory.CreateDirectory(PackagesFolder);
            }

            if (criterias == null)
            {
                criterias = new Dictionary <string, TypeFinderCriteria>();
            }

            _options = options ?? new NugetPluginCatalogOptions();

            if (configureFinder != null)
            {
                var builder = new TypeFinderCriteriaBuilder();
                configureFinder(builder);

                var criteria = builder.Build();

                _options.TypeFinderOptions.TypeFinderCriterias.Add(criteria);
            }

            foreach (var finderCriteria in criterias)
            {
                finderCriteria.Value.Tags = new List <string>()
                {
                    finderCriteria.Key
                };

                _options.TypeFinderOptions.TypeFinderCriterias.Add(finderCriteria.Value);
            }
        }