Exemplo n.º 1
0
        /// <summary>
        /// Find all filtered package from a provided package catalog reference.
        /// </summary>
        /// <param name="packageCatalogReference">Package catalog reference</param>
        /// <param name="field">Package match field</param>
        /// <param name="option">Package field match option</param>
        /// <param name="value">Package match value</param>
        /// <returns>List of matches</returns>
        protected IReadOnlyList <MatchResult> FindAllPackages(
            PackageCatalogReference packageCatalogReference,
            PackageMatchField field,
            PackageFieldMatchOption option,
            string value)
        {
            Assert.NotNull(packageCatalogReference, "Package catalog reference cannot be null");

            // Prepare filter
            var filter = TestFactory.CreatePackageMatchFilter();

            filter.Field  = field;
            filter.Option = option;
            filter.Value  = value;

            // Add filter
            var findPackageOptions = TestFactory.CreateFindPackagesOptions();

            findPackageOptions.Filters.Add(filter);

            // Connect and find package
            var source = packageCatalogReference.Connect().PackageCatalog;

            return(source.FindPackages(findPackageOptions).Matches);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Find one filtered package from a provided package catalog reference.
        /// </summary>
        /// <param name="packageCatalogReference">Package catalog reference</param>
        /// <param name="field">Package match field</param>
        /// <param name="option">Package field match option</param>
        /// <param name="value">Package match value</param>
        /// <returns>List of matches</returns>
        public MatchResult FindOnePackage(
            PackageCatalogReference packageCatalogReference,
            PackageMatchField field,
            PackageFieldMatchOption option,
            string value)
        {
            var findPackages = FindAllPackages(packageCatalogReference, field, option, value);

            Assert.AreEqual(1, findPackages.Count, $"Expected exactly one package but found {findPackages.Count}");
            return(findPackages.First());
        }
Exemplo n.º 3
0
 private static void AddFilterToFindPackagesOptionsIfNotNull(
     ref FindPackagesOptions options,
     PackageMatchField field,
     PackageFieldMatchOption match,
     string value)
 {
     if (value != null)
     {
         var filter = ComObjectFactory.Value.CreatePackageMatchFilter();
         filter.Field  = field;
         filter.Value  = value;
         filter.Option = match;
         options.Filters.Add(filter);
     }
 }
Exemplo n.º 4
0
        private void AddAttributedFiltersToFindPackagesOptions(
            ref FindPackagesOptions options,
            PackageFieldMatchOption match)
        {
            IEnumerable <PropertyInfo> properties = this
                                                    .GetType()
                                                    .GetProperties()
                                                    .Where(property => Attribute.IsDefined(property, typeof(FilterAttribute)));

            foreach (PropertyInfo info in properties)
            {
                if (info.GetCustomAttribute(typeof(FilterAttribute), true) is FilterAttribute attribute)
                {
                    PackageMatchField field = attribute.Field;
                    string            value = info.GetValue(this, null) as string;
                    AddFilterToFindPackagesOptionsIfNotNull(ref options, field, match, value);
                }
            }
        }