// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information. using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Web.Http.Metadata; namespace System.Web.Http.ModelBinding.Binders { // Describes a complex model, but uses a collection rather than individual properties as the data store. public class ComplexModelDto { public ComplexModelDto(ModelMetadata modelMetadata, IEnumerable propertyMetadata) { if (modelMetadata == null) { throw Error.ArgumentNull("modelMetadata"); } if (propertyMetadata == null) { throw Error.ArgumentNull("propertyMetadata"); } ModelMetadata = modelMetadata; PropertyMetadata = new Collection(propertyMetadata.ToList()); Results = new Dictionary(); } public ModelMetadata ModelMetadata { get; private set; } public Collection PropertyMetadata { get; private set; } // Contains entries corresponding to each property against which binding was // attempted. If binding failed, the entry's value will be null. If binding // was never attempted, this dictionary will not contain a corresponding // entry. public IDictionary Results { get; private set; } } }