TableProvider.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / DynamicData / DynamicData / ModelProviders / TableProvider.cs / 1305376 / TableProvider.cs

                            using System.Collections.ObjectModel; 
using System.ComponentModel;
using System.Linq;
using System.Security.Principal;
 
namespace System.Web.DynamicData.ModelProviders {
    ///  
    /// Base provider class for tables. 
    /// Each provider type (e.g. Linq To Sql, Entity Framework, 3rd party) extends this class.
    ///  
    public abstract class TableProvider {
        private Type _rootEntityType;
        private string _dataContextPropertyName;
 
        internal TableProvider() {
            // for unit testing 
        } 

        ///  
        /// ctor
        /// 
        /// the model this table belongs to
        protected TableProvider(DataModelProvider model) { 
            if (model == null) {
                throw new ArgumentNullException("model"); 
            } 

            DataModel = model; 
        }

        /// 
        /// readable representation 
        /// 
        ///  
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] 
        public override string ToString() {
            // To help identifying objects in debugger 
            return Name ?? base.ToString();
        }

        ///  
        /// Provides access to attributes defined for the table represented by this provider.
        ///  
        public virtual AttributeCollection Attributes { 
            get {
                return GetTypeDescriptor().GetAttributes(); 
            }
        }

        public virtual ICustomTypeDescriptor GetTypeDescriptor() { 
#if ORYX_VNEXT
            return MetadataHandlerRegistration.GetTypeDescriptor(EntityType); 
#else 
            return TypeDescriptor.GetProvider(EntityType).GetTypeDescriptor(EntityType);
#endif 
        }

        /// 
        /// The name of the table.  Typically, this is the name of the property in the data context class 
        /// 
        public virtual string Name { get; protected set; } 
 
        /// 
        /// The CLR type that represents this table 
        /// 
        public virtual Type EntityType { get; protected set; }

        ///  
        /// The collection of columns in this table
        ///  
        public abstract ReadOnlyCollection Columns { get; } 

        ///  
        /// The IQueryable that returns the elements of this table
        /// 
        public abstract IQueryable GetQuery(object context);
 
        /// 
        /// The data model provider that this table is part of 
        ///  
        public DataModelProvider DataModel { get; internal set; }
 
        /// 
        /// Get the value of a foreign key for a given row. By default, it just looks up a property by that name
        /// 
        public virtual object EvaluateForeignKey(object row, string foreignKeyName) { 
            return System.Web.UI.DataBinder.GetPropertyValue(row, foreignKeyName);
        } 
 
        /// 
        /// Return the parent type of this entity's inheritance hierarchy; if the type is at the top 
        /// of an inheritance hierarchy or does not have any inheritance, will return null.
        /// 
        public virtual Type ParentEntityType { get; protected set; }
 
        /// 
        /// Return the root type of this entity's inheritance hierarchy; if the type is at the top 
        /// of an inheritance hierarchy or does not have any inheritance, will return EntityType. 
        /// 
        public virtual Type RootEntityType { 
            get {
                return _rootEntityType ?? EntityType;
            }
            protected set { 
                _rootEntityType = value;
            } 
        } 

        ///  
        /// Name of table coming from the property on the data context. E.g. the value is "Products" for
        /// a table that is part of the NorthwindDataContext.Products collection. If this value has not
        /// been set, it will return the value of the Name property.
        ///  
        public virtual string DataContextPropertyName {
            get { 
                return _dataContextPropertyName ?? Name; 
            }
            protected set { 
                _dataContextPropertyName = value;
            }
        }
 
        /// 
        /// Returns whether the passed in user is allowed to delete items from the table 
        ///  
        public virtual bool CanDelete(IPrincipal principal) {
            if (principal == null) { 
                throw new ArgumentNullException("principal");
            }
            return true;
        } 

        ///  
        /// Returns whether the passed in user is allowed to insert into the table 
        /// 
        public virtual bool CanInsert(IPrincipal principal) { 
            if (principal == null) {
                throw new ArgumentNullException("principal");
            }
            return true; 
        }
 
        ///  
        /// Returns whether the passed in user is allowed to read from the table
        ///  
        public virtual bool CanRead(IPrincipal principal) {
            if (principal == null) {
                throw new ArgumentNullException("principal");
            } 
            return true;
        } 
 
        /// 
        /// Returns whether the passed in user is allowed to make changes tothe table 
        /// 
        public virtual bool CanUpdate(IPrincipal principal) {
            if (principal == null) {
                throw new ArgumentNullException("principal"); 
            }
            return true; 
        } 
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
using System.Collections.ObjectModel; 
using System.ComponentModel;
using System.Linq;
using System.Security.Principal;
 
namespace System.Web.DynamicData.ModelProviders {
    ///  
    /// Base provider class for tables. 
    /// Each provider type (e.g. Linq To Sql, Entity Framework, 3rd party) extends this class.
    ///  
    public abstract class TableProvider {
        private Type _rootEntityType;
        private string _dataContextPropertyName;
 
        internal TableProvider() {
            // for unit testing 
        } 

        ///  
        /// ctor
        /// 
        /// the model this table belongs to
        protected TableProvider(DataModelProvider model) { 
            if (model == null) {
                throw new ArgumentNullException("model"); 
            } 

            DataModel = model; 
        }

        /// 
        /// readable representation 
        /// 
        ///  
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] 
        public override string ToString() {
            // To help identifying objects in debugger 
            return Name ?? base.ToString();
        }

        ///  
        /// Provides access to attributes defined for the table represented by this provider.
        ///  
        public virtual AttributeCollection Attributes { 
            get {
                return GetTypeDescriptor().GetAttributes(); 
            }
        }

        public virtual ICustomTypeDescriptor GetTypeDescriptor() { 
#if ORYX_VNEXT
            return MetadataHandlerRegistration.GetTypeDescriptor(EntityType); 
#else 
            return TypeDescriptor.GetProvider(EntityType).GetTypeDescriptor(EntityType);
#endif 
        }

        /// 
        /// The name of the table.  Typically, this is the name of the property in the data context class 
        /// 
        public virtual string Name { get; protected set; } 
 
        /// 
        /// The CLR type that represents this table 
        /// 
        public virtual Type EntityType { get; protected set; }

        ///  
        /// The collection of columns in this table
        ///  
        public abstract ReadOnlyCollection Columns { get; } 

        ///  
        /// The IQueryable that returns the elements of this table
        /// 
        public abstract IQueryable GetQuery(object context);
 
        /// 
        /// The data model provider that this table is part of 
        ///  
        public DataModelProvider DataModel { get; internal set; }
 
        /// 
        /// Get the value of a foreign key for a given row. By default, it just looks up a property by that name
        /// 
        public virtual object EvaluateForeignKey(object row, string foreignKeyName) { 
            return System.Web.UI.DataBinder.GetPropertyValue(row, foreignKeyName);
        } 
 
        /// 
        /// Return the parent type of this entity's inheritance hierarchy; if the type is at the top 
        /// of an inheritance hierarchy or does not have any inheritance, will return null.
        /// 
        public virtual Type ParentEntityType { get; protected set; }
 
        /// 
        /// Return the root type of this entity's inheritance hierarchy; if the type is at the top 
        /// of an inheritance hierarchy or does not have any inheritance, will return EntityType. 
        /// 
        public virtual Type RootEntityType { 
            get {
                return _rootEntityType ?? EntityType;
            }
            protected set { 
                _rootEntityType = value;
            } 
        } 

        ///  
        /// Name of table coming from the property on the data context. E.g. the value is "Products" for
        /// a table that is part of the NorthwindDataContext.Products collection. If this value has not
        /// been set, it will return the value of the Name property.
        ///  
        public virtual string DataContextPropertyName {
            get { 
                return _dataContextPropertyName ?? Name; 
            }
            protected set { 
                _dataContextPropertyName = value;
            }
        }
 
        /// 
        /// Returns whether the passed in user is allowed to delete items from the table 
        ///  
        public virtual bool CanDelete(IPrincipal principal) {
            if (principal == null) { 
                throw new ArgumentNullException("principal");
            }
            return true;
        } 

        ///  
        /// Returns whether the passed in user is allowed to insert into the table 
        /// 
        public virtual bool CanInsert(IPrincipal principal) { 
            if (principal == null) {
                throw new ArgumentNullException("principal");
            }
            return true; 
        }
 
        ///  
        /// Returns whether the passed in user is allowed to read from the table
        ///  
        public virtual bool CanRead(IPrincipal principal) {
            if (principal == null) {
                throw new ArgumentNullException("principal");
            } 
            return true;
        } 
 
        /// 
        /// Returns whether the passed in user is allowed to make changes tothe table 
        /// 
        public virtual bool CanUpdate(IPrincipal principal) {
            if (principal == null) {
                throw new ArgumentNullException("principal"); 
            }
            return true; 
        } 
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK