public static void LoadGlobalFilters(this List <IAuctionFilter> me, AuctionFilterFactory filtersFactory) { var filters = new List <FilterMetaData> { new FilterMetaData { EntityName = "Auction", Name = "AuctionHTMLDecoderFilter" }, new FilterMetaData { EntityName = "Auction", Name = "AuctionDateConverterFilter" }, new FilterMetaData { EntityName = "Auction", Name = "AuctionCopyFromIfEmptyFilter", Properties = "{ source:'SaleNumber', dest:'Id' }" }, new FilterMetaData { EntityName = "Auction", Name = "AuctionIdUniqueFilter" }, new FilterMetaData { EntityName = "Auction", Name = "AuctionPhotoHostPrefixFilter" }, new FilterMetaData { EntityName = "Auction", Name = "AuctionPhotoFilter", Properties = "PhotoRaw" }, new FilterMetaData { EntityName = "Auction", Name = "AuctionURLHostPrefixFilter" }, /// TODO ->> temporary disabled ///new FilterMetaData { EntityName = "Auction", Name = "AuctionSkipByExpirationFilter" }, new FilterMetaData { EntityName = "Auction", Name = "AuctionSkipByCompletionFilter" }, }; me.AddRange(filters.Select(x => filtersFactory.Produce(x))); }
/* * public static void LoadFilters<TFilter, TFactory>(this List<TFilter> me, IEnumerable<FilterMetaData> filtersMetaData, TFactory filtersFactory) * where TFactory: IFactory<FilterMetaData, TFilter> * where TFilter : IFilter<TFilter> * { * foreach (var filterMetaData in filtersMetaData) * { * var filter = filtersFactory.Produce(filterMetaData); * if (filter == null) continue; * me.Add(filter); * } * } */ public static void LoadFilters(this List <IAuctionFilter> me, IEnumerable <FilterMetaData> filtersMetaData, AuctionFilterFactory filtersFactory) { foreach (var filterMetaData in filtersMetaData) { var filter = filtersFactory.Produce(filterMetaData); if (filter == null) { continue; } me.Add(filter); } }