// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Collections; using System.Collections.Generic; using System.Linq; using System.Web.Http.Controllers; using System.Web.Http.ModelBinding; using System.Web.Http.ValueProviders; namespace System.Web.Http.Internal { internal static class HttpParameterBindingExtensions { public static bool WillReadUri(this HttpParameterBinding parameterBinding) { if (parameterBinding == null) { throw Error.ArgumentNull("parameterBinding"); } IValueProviderParameterBinding valueProviderParameterBinding = parameterBinding as IValueProviderParameterBinding; if (valueProviderParameterBinding != null) { IEnumerable valueProviderFactories = valueProviderParameterBinding.ValueProviderFactories; if (valueProviderFactories.Any() && valueProviderFactories.All(factory => factory is IUriValueProviderFactory)) { return true; } } return false; } } }