// 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);
}
}
}