// ---------------------------------------------------------------------------------------------------------------- public List <AssetSearchResultItem> Search(AddonSearchCriteria pAddonSearchCriteria, AssetSearchCriteria pAssetSearchCriteria) { List <AddonPackage> subSet = pAddonSearchCriteria == null ? Addons : SelectPackages(pAddonSearchCriteria); if (pAssetSearchCriteria == null) { pAssetSearchCriteria = new AssetSearchCriteria(null, AddonAssetType.Any, null, null, null); } // if (pAssetSearchCriteria != null) return(SearchAsset(subSet, pAssetSearchCriteria)); /* * return (pAddonSearchCriteria == null) * ? null * : BuildAddonSearchResult(subSet); */ }
/* * private List<AssetSearchResultItem> BuildAddonSearchResult(List<AddonPackage> subSet) * { * throw new NotImplementedException(); * } */ public List <AddonPackage> SelectPackages(AddonSearchCriteria pCriteria) { if (Addons == null) { return(null); } if (pCriteria == null) { return(Addons); } List <AddonPackage> found = new List <AddonPackage>(); foreach (AddonPackage addon in Addons) { if (pCriteria.IsMatch(addon)) { found.Add(addon); } } return(found.Count == 0 ? null : found); }