3b318fdf0eec070860579e86e681a53ed31bcb71
[mono.git] / mcs / class / System.ComponentModel.Composition / Tests / ComponentModelUnitTest / System / ComponentModel / Composition / Factories / CatalogFactory.FilteredComposablePartCatalog.cs
1 // -----------------------------------------------------------------------\r
2 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
3 // -----------------------------------------------------------------------\r
4 using System;\r
5 using System.ComponentModel.Composition.Primitives;\r
6 using System.Linq;\r
7 \r
8 namespace System.ComponentModel.Composition.Factories\r
9 {\r
10     partial class CatalogFactory\r
11     {\r
12         private class FilteredComposablePartCatalog : ComposablePartCatalog\r
13         {\r
14             private readonly IQueryable<ComposablePartDefinition> _filteredParts;\r
15 \r
16             public FilteredComposablePartCatalog(ComposablePartCatalog catalog, Func<ComposablePartDefinition, bool> filter)\r
17             {\r
18                 this._filteredParts = catalog.Parts.Where(filter).AsQueryable();\r
19 \r
20                 // Do we care about hooking the the catalog changed events? Not for my particular tests.\r
21             }\r
22 \r
23             public override IQueryable<ComposablePartDefinition> Parts\r
24             {\r
25                 get\r
26                 {\r
27                     return this._filteredParts;\r
28                 }\r
29             }\r
30         }\r
31     }\r
32 }