/// <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); }
/// <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()); }
private static void SetQueryInFindPackagesOptions( ref FindPackagesOptions options, PackageFieldMatchOption match, string value) { var selector = ComObjectFactory.Value.CreatePackageMatchFilter(); selector.Field = PackageMatchField.CatalogDefault; selector.Value = value ?? string.Empty; selector.Option = match; options.Selectors.Add(selector); }
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); } }
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); } } }