| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Web;
- using System.Web.DynamicData;
- using System.Web.DynamicData.ModelProviders;
- using MonoTests.DataSource;
- namespace MonoTests.ModelProviders
- {
- public class DynamicDataContainerTableProvider : TableProvider
- {
- ReadOnlyCollection<ColumnProvider> columns;
- DynamicDataTable table;
- public DynamicDataContainerTableProvider (DynamicDataContainerModelProvider owner, DynamicDataTable table)
- : base (owner)
- {
- if (table == null)
- throw new ArgumentNullException ("table");
- this.EntityType = table.DataType;
- this.Name = table.Name;
- this.table = table;
- }
- public override ReadOnlyCollection<ColumnProvider> Columns
- {
- get
- {
- if (columns != null)
- return columns;
- columns = LoadColumns ();
- return columns;
- }
- }
- public override IQueryable GetQuery (object context)
- {
- throw new NotImplementedException ();
- }
- ReadOnlyCollection<ColumnProvider> LoadColumns ()
- {
- List<DynamicDataColumn> containerColumns = table.GetColumns ();
- if (containerColumns == null || containerColumns.Count == 0)
- return new ReadOnlyCollection<ColumnProvider> (new List<ColumnProvider> ());
- var columns = new List<ColumnProvider> ();
- foreach (var column in containerColumns)
- columns.Add (new DynamicDataContainerColumnProvider (this, column));
- return new ReadOnlyCollection<ColumnProvider> (columns);
- }
- public void ResolveAssociations ()
- {
- DynamicDataContainerColumnProvider column;
- foreach (var cp in Columns) {
- column = cp as DynamicDataContainerColumnProvider;
- if (column == null)
- continue;
- column.ResolveAssociations ();
- }
- }
- }
- }
|