Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataWebControls / System / Data / WebControls / EntityDataSourceWrapperCollection.cs / 1 / EntityDataSourceWrapperCollection.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Collections; using System.ComponentModel; using System.Collections.Generic; using System.Data.Metadata.Edm; using System.Data.Mapping; using System.Data.Objects; using System.Reflection; using System.Diagnostics; using System.Data.Common; using System.Data.Objects.DataClasses; using System.Globalization; using System.Data.EntityClient; using System.Collections.ObjectModel; namespace System.Web.UI.WebControls { ////// Summary description for EntityDataSourceWrapperCollection /// internal class EntityDataSourceWrapperCollection : IEnumerable, ICollection, ITypedList { private readonly ObjectContext _context; private readonly List_wrapperList; /// /// Gets the property descriptors exposed to the user. /// private readonly PropertyDescriptorCollection _visiblePropertyDescriptors; ////// Gets all property descriptors. /// internal readonly ReadOnlyCollectionAllPropertyDescriptors; private readonly bool _isReadOnly; private readonly Type _clrEntityType; internal EntityDataSourceWrapperCollection(ObjectContext context, EntitySet entitySet, EntityType restrictedEntityType) { EntityDataSourceUtil.CheckArgumentNull(context, "context"); EntityDataSourceUtil.CheckArgumentNull(entitySet, "entitySet"); _context = context; _wrapperList = new List (); // get handles on the relevant workspaces MetadataWorkspace csWorkspace = ((EntityConnection)context.Connection).GetMetadataWorkspace(); MetadataWorkspace ocWorkspace = context.MetadataWorkspace; // if no restricted type is given, we assume the entity set element type is exposed EntityType entityType = restrictedEntityType ?? entitySet.ElementType; _clrEntityType = EntityDataSourceUtil.GetClrType(ocWorkspace, entityType); // if no restricted type is given and the set is polymorphic, make the collection readonly if (null == restrictedEntityType && 1 < EntityDataSourceUtil.GetTypeAndSubtypesOf(entityType, csWorkspace.GetItemCollection(DataSpace.CSpace), true).Count()) { _isReadOnly = true; } // gather the properties Type componentType = EntityDataSourceUtil.GetClrType(context.MetadataWorkspace, entityType); ReadOnlyCollection columns = EntityDataSourceUtil.GetNamedColumns(csWorkspace, ocWorkspace, entitySet, entityType); List visiblePropertyDescriptors = new List (columns.Count); List propertyDescriptors = new List (columns.Count); foreach (EntityDataSourceColumn column in columns) { var descriptor = new EntityDataSourceWrapperPropertyDescriptor(this, column); propertyDescriptors.Add(descriptor); // if the descriptor does not have a dependent, it is exposed to the user if (!descriptor.Column.IsHidden) { visiblePropertyDescriptors.Add(descriptor); } } _visiblePropertyDescriptors = new PropertyDescriptorCollection(visiblePropertyDescriptors.ToArray(), true); AllPropertyDescriptors = propertyDescriptors.AsReadOnly(); } internal EntityDataSourceWrapper AddWrappedEntity(object entity) { EntityDataSourceWrapper wrapper = new EntityDataSourceWrapper(this, entity); this._wrapperList.Add(wrapper); return wrapper; } #region IEnumerable Implementation IEnumerator IEnumerable.GetEnumerator() { return this._wrapperList.GetEnumerator(); } #endregion IEnumerable Implementation #region ICollection Implementation public int Count { get { return this._wrapperList.Count; } } public void CopyTo(Array array, int index) { ((ICollection)this._wrapperList).CopyTo(array, index); } public bool IsSynchronized { get { return false; } } public object SyncRoot { get { return null; } } #endregion #region ITypedList Implementation public PropertyDescriptorCollection GetItemProperties(PropertyDescriptor[] listAccessors) { if (null == listAccessors) { return this._visiblePropertyDescriptors ; } else { return null;// Implement this feature when we support traversing collections. } } string ITypedList.GetListName(PropertyDescriptor[] listAccessors) { return null; } #endregion #region Internal properties /// /// Gets CLR type or base type for entities exposed in this collection. /// internal Type ClrEntityType { get { return _clrEntityType; } } ////// Indicates whether this configuration supports modifications. /// internal bool IsReadOnly { get { return _isReadOnly; } } ////// Gets object context tracking the contents of this collection. /// internal ObjectContext Context { get { return _context; } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Collections; using System.ComponentModel; using System.Collections.Generic; using System.Data.Metadata.Edm; using System.Data.Mapping; using System.Data.Objects; using System.Reflection; using System.Diagnostics; using System.Data.Common; using System.Data.Objects.DataClasses; using System.Globalization; using System.Data.EntityClient; using System.Collections.ObjectModel; namespace System.Web.UI.WebControls { ////// Summary description for EntityDataSourceWrapperCollection /// internal class EntityDataSourceWrapperCollection : IEnumerable, ICollection, ITypedList { private readonly ObjectContext _context; private readonly List_wrapperList; /// /// Gets the property descriptors exposed to the user. /// private readonly PropertyDescriptorCollection _visiblePropertyDescriptors; ////// Gets all property descriptors. /// internal readonly ReadOnlyCollectionAllPropertyDescriptors; private readonly bool _isReadOnly; private readonly Type _clrEntityType; internal EntityDataSourceWrapperCollection(ObjectContext context, EntitySet entitySet, EntityType restrictedEntityType) { EntityDataSourceUtil.CheckArgumentNull(context, "context"); EntityDataSourceUtil.CheckArgumentNull(entitySet, "entitySet"); _context = context; _wrapperList = new List (); // get handles on the relevant workspaces MetadataWorkspace csWorkspace = ((EntityConnection)context.Connection).GetMetadataWorkspace(); MetadataWorkspace ocWorkspace = context.MetadataWorkspace; // if no restricted type is given, we assume the entity set element type is exposed EntityType entityType = restrictedEntityType ?? entitySet.ElementType; _clrEntityType = EntityDataSourceUtil.GetClrType(ocWorkspace, entityType); // if no restricted type is given and the set is polymorphic, make the collection readonly if (null == restrictedEntityType && 1 < EntityDataSourceUtil.GetTypeAndSubtypesOf(entityType, csWorkspace.GetItemCollection(DataSpace.CSpace), true).Count()) { _isReadOnly = true; } // gather the properties Type componentType = EntityDataSourceUtil.GetClrType(context.MetadataWorkspace, entityType); ReadOnlyCollection columns = EntityDataSourceUtil.GetNamedColumns(csWorkspace, ocWorkspace, entitySet, entityType); List visiblePropertyDescriptors = new List (columns.Count); List propertyDescriptors = new List (columns.Count); foreach (EntityDataSourceColumn column in columns) { var descriptor = new EntityDataSourceWrapperPropertyDescriptor(this, column); propertyDescriptors.Add(descriptor); // if the descriptor does not have a dependent, it is exposed to the user if (!descriptor.Column.IsHidden) { visiblePropertyDescriptors.Add(descriptor); } } _visiblePropertyDescriptors = new PropertyDescriptorCollection(visiblePropertyDescriptors.ToArray(), true); AllPropertyDescriptors = propertyDescriptors.AsReadOnly(); } internal EntityDataSourceWrapper AddWrappedEntity(object entity) { EntityDataSourceWrapper wrapper = new EntityDataSourceWrapper(this, entity); this._wrapperList.Add(wrapper); return wrapper; } #region IEnumerable Implementation IEnumerator IEnumerable.GetEnumerator() { return this._wrapperList.GetEnumerator(); } #endregion IEnumerable Implementation #region ICollection Implementation public int Count { get { return this._wrapperList.Count; } } public void CopyTo(Array array, int index) { ((ICollection)this._wrapperList).CopyTo(array, index); } public bool IsSynchronized { get { return false; } } public object SyncRoot { get { return null; } } #endregion #region ITypedList Implementation public PropertyDescriptorCollection GetItemProperties(PropertyDescriptor[] listAccessors) { if (null == listAccessors) { return this._visiblePropertyDescriptors ; } else { return null;// Implement this feature when we support traversing collections. } } string ITypedList.GetListName(PropertyDescriptor[] listAccessors) { return null; } #endregion #region Internal properties /// /// Gets CLR type or base type for entities exposed in this collection. /// internal Type ClrEntityType { get { return _clrEntityType; } } ////// Indicates whether this configuration supports modifications. /// internal bool IsReadOnly { get { return _isReadOnly; } } ////// Gets object context tracking the contents of this collection. /// internal ObjectContext Context { get { return _context; } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DiagnosticTrace.cs
- TransportElement.cs
- XmlAttributeOverrides.cs
- WebConfigurationFileMap.cs
- ResourceProperty.cs
- WindowsGraphics2.cs
- MethodAccessException.cs
- PingReply.cs
- Handle.cs
- WpfWebRequestHelper.cs
- PhysicalFontFamily.cs
- EventDescriptorCollection.cs
- CFStream.cs
- NumberSubstitution.cs
- X509SecurityTokenProvider.cs
- ISAPIApplicationHost.cs
- TypeResolvingOptionsAttribute.cs
- DesignerDataColumn.cs
- CodeMethodInvokeExpression.cs
- DiscoveryVersion.cs
- SparseMemoryStream.cs
- HtmlTableRow.cs
- CounterSetInstanceCounterDataSet.cs
- Choices.cs
- SqlVisitor.cs
- HttpProcessUtility.cs
- Confirm.cs
- InfoCardClaim.cs
- MatcherBuilder.cs
- ThaiBuddhistCalendar.cs
- TextTreeUndo.cs
- Color.cs
- MSAANativeProvider.cs
- GridToolTip.cs
- DependencyObject.cs
- SqlAliaser.cs
- Calendar.cs
- FileDialog.cs
- DescendantQuery.cs
- TrackBarRenderer.cs
- FontCacheUtil.cs
- RuntimeCompatibilityAttribute.cs
- CompilerLocalReference.cs
- TreeNodeCollection.cs
- ThemeDirectoryCompiler.cs
- ProcessMessagesAsyncResult.cs
- ItemsControl.cs
- ReferencedAssembly.cs
- followingquery.cs
- GridErrorDlg.cs
- Pkcs7Signer.cs
- Environment.cs
- MULTI_QI.cs
- CharEntityEncoderFallback.cs
- DataKeyCollection.cs
- CompilerLocalReference.cs
- HMACRIPEMD160.cs
- CalendarTable.cs
- ObjectToIdCache.cs
- DependentList.cs
- TemplateNameScope.cs
- CatalogPart.cs
- ObjectDataSourceDisposingEventArgs.cs
- ListViewUpdatedEventArgs.cs
- EmbeddedObject.cs
- KeyInfo.cs
- Point3DIndependentAnimationStorage.cs
- CultureMapper.cs
- AlphaSortedEnumConverter.cs
- ToolboxComponentsCreatedEventArgs.cs
- InfoCardSymmetricCrypto.cs
- SchemaNotation.cs
- XamlBrushSerializer.cs
- InstanceOwnerQueryResult.cs
- StringReader.cs
- IndentTextWriter.cs
- NativeCompoundFileAPIs.cs
- VisualTreeHelper.cs
- FormatVersion.cs
- ScriptingProfileServiceSection.cs
- Pair.cs
- CrossContextChannel.cs
- XamlTemplateSerializer.cs
- Geometry3D.cs
- SetterBaseCollection.cs
- UmAlQuraCalendar.cs
- DashStyle.cs
- HtmlToClrEventProxy.cs
- ErrorHandlerModule.cs
- WebUtil.cs
- Executor.cs
- TextBlockAutomationPeer.cs
- XslVisitor.cs
- RijndaelManagedTransform.cs
- UIElementHelper.cs
- AppDomainAttributes.cs
- xdrvalidator.cs
- CodeTypeMember.cs
- XXXOnTypeBuilderInstantiation.cs
- SslStream.cs