// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Collections.Generic; using System.Linq; namespace Microsoft.AspNet.Mvc.ModelBinding { /// public class CompositeValueProviderFactory : ICompositeValueProviderFactory { private readonly IReadOnlyList _valueProviderFactories; public CompositeValueProviderFactory(IValueProviderFactoryProvider valueProviderFactoryProvider) { _valueProviderFactories = valueProviderFactoryProvider.ValueProviderFactories; } /// public IValueProvider GetValueProvider([NotNull] ValueProviderFactoryContext context) { var valueProviders = _valueProviderFactories.Select(factory => factory.GetValueProvider(context)) .Where(vp => vp != null); return new CompositeValueProvider(valueProviders); } } }