ProfileProviderAdapter.cs :  » Inversion-of-Control-Dependency-Injection » Spring.net » Spring » Web » Providers » C# / CSharp Open Source

Home
C# / CSharp Open Source
1.2.6.4 mono .net core
2.2.6.4 mono core
3.Aspect Oriented Frameworks
4.Bloggers
5.Build Systems
6.Business Application
7.Charting Reporting Tools
8.Chat Servers
9.Code Coverage Tools
10.Content Management Systems CMS
11.CRM ERP
12.Database
13.Development
14.Email
15.Forum
16.Game
17.GIS
18.GUI
19.IDEs
20.Installers Generators
21.Inversion of Control Dependency Injection
22.Issue Tracking
23.Logging Tools
24.Message
25.Mobile
26.Network Clients
27.Network Servers
28.Office
29.PDF
30.Persistence Frameworks
31.Portals
32.Profilers
33.Project Management
34.RSS RDF
35.Rule Engines
36.Script
37.Search Engines
38.Sound Audio
39.Source Control
40.SQL Clients
41.Template Engines
42.Testing
43.UML
44.Web Frameworks
45.Web Service
46.Web Testing
47.Wiki Engines
48.Windows Presentation Foundation
49.Workflows
50.XML Parsers
C# / C Sharp
C# / C Sharp by API
C# / CSharp Tutorial
C# / CSharp Open Source » Inversion of Control Dependency Injection » Spring.net 
Spring.net » Spring » Web » Providers » ProfileProviderAdapter.cs
#if NET_2_0

using System;
using System.Collections.Specialized;
using System.Configuration;
using System.Security.Permissions;
using System.Web;
using System.Web.Profile;
using Spring.Context.Support;

namespace Spring.Web.Providers{
     /// <summary>
    /// Wrapper for <see cref="System.Web.Profile.ProfileProvider"/> class.
    /// </summary>
    /// <remarks>
    /// <p>
    /// Configuration for this provider <b>requires</b> <c>providerId</c> element set in web.config file, 
    /// as the Id of wrapped provider (defined in the Spring context).  
    /// </p>    
    /// </remarks>
    /// <author>Damjan Tomic</author>
    [AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
    public class ProfileProviderAdapter : ProfileProvider, IProfileProvider
     {
        #region Field

        /// <summary>
        /// Reference to wrapped provider (defined in Spring context).
        /// </summary>
        private ProfileProvider wrappedProvider;

        #endregion

        #region ProviderBase members

        ///<summary>
        ///Initializes the provider.
        ///</summary>
        ///
        ///<param name="config">A collection of the name/value pairs representing the provider-specific 
        /// attributes specified in the configuration for this provider.
        /// The <c>providerId</c> attribute may be used to override the name being used for looking up an object definition.
        /// </param>
        ///<param name="name">The friendly name of the provider.</param>
        ///<exception cref="T:System.ArgumentNullException">The <paramref name="name"/> or <paramref name="config"/> is null.</exception>
        ///<exception cref="T:System.InvalidOperationException">An attempt is made to call <see cref="M:System.Configuration.Provider.ProviderBase.Initialize(System.String,System.Collections.Specialized.NameValueCollection)"></see> on a provider after the provider has already been initialized.</exception>
        ///<exception cref="T:System.ArgumentException">The <paramref name="name"/> has a length of zero or providerId attribute is not set.</exception>      
        public override void Initialize(string name, NameValueCollection config)
        {
            lock (this)
            {
                if (config == null) throw new ArgumentNullException("config");

                string providerId = config["providerId"];
                if (String.IsNullOrEmpty(providerId))
                    providerId = name;
                config.Remove("providerId");

                this.wrappedProvider = (ProfileProvider)WebApplicationContext.GetRootContext().GetObject(providerId);
                this.wrappedProvider.Initialize(name, config);
            }
        }

        ///<summary>
        ///Gets the friendly name used to refer to the provider during configuration.
        ///</summary>
        ///
        ///<returns>
        ///The friendly name used to refer to the provider during configuration.
        ///</returns>
        public override string Name
        {
            get { return this.wrappedProvider.Name; }
        }

        ///<summary>
        ///Gets a brief, friendly description suitable for display in administrative tools or other user interfaces (UIs).
        ///</summary>
        ///
        ///<returns>
        ///A brief, friendly description suitable for display in administrative tools or other UIs.
        ///</returns>
        public override string Description
        {
            get { return this.wrappedProvider.Description; }
        }

        #endregion

        #region System.Web.Profile.ProfileProvider members

         ///<summary>
         ///Returns the collection of settings property values for the specified application instance and settings property group.
         ///</summary>
         ///
         ///<returns>
         ///A <see cref="T:System.Configuration.SettingsPropertyValueCollection"></see> containing the values for the specified settings property group.
         ///</returns>
         ///
         ///<param name="context">A <see cref="T:System.Configuration.SettingsContext"></see> describing the current application use.</param>
         ///<param name="collection">A <see cref="T:System.Configuration.SettingsPropertyCollection"></see> containing the settings property group whose values are to be retrieved.</param><filterpriority>2</filterpriority>
         public override SettingsPropertyValueCollection GetPropertyValues(SettingsContext context,
                                                                           SettingsPropertyCollection collection)
         {
             return this.wrappedProvider.GetPropertyValues(context, collection);
         }

         ///<summary>
         ///Sets the values of the specified group of property settings.
         ///</summary>
         ///
         ///<param name="context">A <see cref="T:System.Configuration.SettingsContext"></see> describing the current application usage.</param>
         ///<param name="collection">A <see cref="T:System.Configuration.SettingsPropertyValueCollection"></see> representing the group of property settings to set.</param><filterpriority>2</filterpriority>
         public override void SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection collection)
         {
             this.wrappedProvider.SetPropertyValues(context,collection);
         }

         ///<summary>
         ///Gets or sets the name of the currently running application.
         ///</summary>
         ///
         ///<returns>
         ///A <see cref="T:System.String"></see> that contains the application's shortened name, which does not contain a full path or extension, for example, SimpleAppSettings.
         ///</returns>
         ///<filterpriority>2</filterpriority>
         public override string ApplicationName
         {
             get { return this.wrappedProvider.ApplicationName; }
             set { this.wrappedProvider.ApplicationName = value; }
         }

         ///<summary>
         ///When overridden in a derived class, deletes profile properties and information for the supplied list of profiles.
         ///</summary>
         ///
         ///<returns>
         ///The number of profiles deleted from the data source.
         ///</returns>
         ///
         ///<param name="profiles">A <see cref="T:System.Web.Profile.ProfileInfoCollection"></see>  of information about profiles that are to be deleted.</param>
         public override int DeleteProfiles(ProfileInfoCollection profiles)
         {
             return this.wrappedProvider.DeleteProfiles(profiles);
         }

         ///<summary>
         ///When overridden in a derived class, deletes profile properties and information for profiles that match the supplied list of user names.
         ///</summary>
         ///
         ///<returns>
         ///The number of profiles deleted from the data source.
         ///</returns>
         ///
         ///<param name="usernames">A string array of user names for profiles to be deleted.</param>
         public override int DeleteProfiles(string[] usernames)
         {
             return this.wrappedProvider.DeleteProfiles(usernames);
         }

         ///<summary>
         ///When overridden in a derived class, deletes all user-profile data for profiles in which the last activity date occurred before the specified date.
         ///</summary>
         ///
         ///<returns>
         ///The number of profiles deleted from the data source.
         ///</returns>
         ///
         ///<param name="authenticationOption">One of the <see cref="T:System.Web.Profile.ProfileAuthenticationOption"></see> values, specifying whether anonymous, authenticated, or both types of profiles are deleted.</param>
         ///<param name="userInactiveSinceDate">A <see cref="T:System.DateTime"></see> that identifies which user profiles are considered inactive. If the <see cref="P:System.Web.Profile.ProfileInfo.LastActivityDate"></see>  value of a user profile occurs on or before this date and time, the profile is considered inactive.</param>
         public override int DeleteInactiveProfiles(ProfileAuthenticationOption authenticationOption,
                                                    DateTime userInactiveSinceDate)
         {
             return this.wrappedProvider.DeleteInactiveProfiles(authenticationOption, userInactiveSinceDate);
         }

         ///<summary>
         ///When overridden in a derived class, returns the number of profiles in which the last activity date occurred on or before the specified date.
         ///</summary>
         ///
         ///<returns>
         ///The number of profiles in which the last activity date occurred on or before the specified date.
         ///</returns>
         ///
         ///<param name="authenticationOption">One of the <see cref="T:System.Web.Profile.ProfileAuthenticationOption"></see> values, specifying whether anonymous, authenticated, or both types of profiles are returned.</param>
         ///<param name="userInactiveSinceDate">A <see cref="T:System.DateTime"></see> that identifies which user profiles are considered inactive. If the <see cref="P:System.Web.Profile.ProfileInfo.LastActivityDate"></see>  of a user profile occurs on or before this date and time, the profile is considered inactive.</param>
         public override int GetNumberOfInactiveProfiles(ProfileAuthenticationOption authenticationOption,
                                                         DateTime userInactiveSinceDate)
         {
             return this.wrappedProvider.GetNumberOfInactiveProfiles(authenticationOption, userInactiveSinceDate);
         }

         ///<summary>
         ///When overridden in a derived class, retrieves user profile data for all profiles in the data source.
         ///</summary>
         ///
         ///<returns>
         ///A <see cref="T:System.Web.Profile.ProfileInfoCollection"></see> containing user-profile information for all profiles in the data source.
         ///</returns>
         ///
         ///<param name="authenticationOption">One of the <see cref="T:System.Web.Profile.ProfileAuthenticationOption"></see> values, specifying whether anonymous, authenticated, or both types of profiles are returned.</param>
         ///<param name="totalRecords">When this method returns, contains the total number of profiles.</param>
         ///<param name="pageIndex">The index of the page of results to return.</param>
         ///<param name="pageSize">The size of the page of results to return.</param>
         public override ProfileInfoCollection GetAllProfiles(ProfileAuthenticationOption authenticationOption,
                                                              int pageIndex, int pageSize, out int totalRecords)
         {
             return this.wrappedProvider.GetAllProfiles(authenticationOption, pageIndex, pageSize, out totalRecords);
         }

         ///<summary>
         ///When overridden in a derived class, retrieves user-profile data from the data source for profiles in which the last activity date occurred on or before the specified date.
         ///</summary>
         ///
         ///<returns>
         ///A <see cref="T:System.Web.Profile.ProfileInfoCollection"></see> containing user-profile information about the inactive profiles.
         ///</returns>
         ///
         ///<param name="authenticationOption">One of the <see cref="T:System.Web.Profile.ProfileAuthenticationOption"></see> values, specifying whether anonymous, authenticated, or both types of profiles are returned.</param>
         ///<param name="userInactiveSinceDate">A <see cref="T:System.DateTime"></see> that identifies which user profiles are considered inactive. If the <see cref="P:System.Web.Profile.ProfileInfo.LastActivityDate"></see>  of a user profile occurs on or before this date and time, the profile is considered inactive.</param>
         ///<param name="totalRecords">When this method returns, contains the total number of profiles.</param>
         ///<param name="pageIndex">The index of the page of results to return.</param>
         ///<param name="pageSize">The size of the page of results to return.</param>
         public override ProfileInfoCollection GetAllInactiveProfiles(ProfileAuthenticationOption authenticationOption,
                                                                      DateTime userInactiveSinceDate, int pageIndex,
                                                                      int pageSize, out int totalRecords)
         {
             return
                 this.wrappedProvider.GetAllInactiveProfiles(authenticationOption, userInactiveSinceDate, pageIndex, pageSize,
                                                 out totalRecords);
         }

         ///<summary>
         ///When overridden in a derived class, retrieves profile information for profiles in which the user name matches the specified user names.
         ///</summary>
         ///
         ///<returns>
         ///A <see cref="T:System.Web.Profile.ProfileInfoCollection"></see> containing user-profile information for profiles where the user name matches the supplied usernameToMatch parameter.
         ///</returns>
         ///
         ///<param name="authenticationOption">One of the <see cref="T:System.Web.Profile.ProfileAuthenticationOption"></see> values, specifying whether anonymous, authenticated, or both types of profiles are returned.</param>
         ///<param name="totalRecords">When this method returns, contains the total number of profiles.</param>
         ///<param name="pageIndex">The index of the page of results to return.</param>
         ///<param name="usernameToMatch">The user name to search for.</param>
         ///<param name="pageSize">The size of the page of results to return.</param>
         public override ProfileInfoCollection FindProfilesByUserName(ProfileAuthenticationOption authenticationOption,
                                                                      string usernameToMatch, int pageIndex, int pageSize,
                                                                      out int totalRecords)
         {
             return
                 this.wrappedProvider.FindProfilesByUserName(authenticationOption, usernameToMatch, pageIndex, pageSize,
                                                 out totalRecords);
         }

         ///<summary>
         ///When overridden in a derived class, retrieves profile information for profiles in which the last activity date occurred on or before the specified date and the user name matches the specified user name.
         ///</summary>
         ///
         ///<returns>
         ///A <see cref="T:System.Web.Profile.ProfileInfoCollection"></see> containing user profile information for inactive profiles where the user name matches the supplied usernameToMatch parameter.
         ///</returns>
         ///
         ///<param name="authenticationOption">One of the <see cref="T:System.Web.Profile.ProfileAuthenticationOption"></see> values, specifying whether anonymous, authenticated, or both types of profiles are returned.</param>
         ///<param name="userInactiveSinceDate">A <see cref="T:System.DateTime"></see> that identifies which user profiles are considered inactive. If the <see cref="P:System.Web.Profile.ProfileInfo.LastActivityDate"></see> value of a user profile occurs on or before this date and time, the profile is considered inactive.</param>
         ///<param name="totalRecords">When this method returns, contains the total number of profiles.</param>
         ///<param name="pageIndex">The index of the page of results to return.</param>
         ///<param name="usernameToMatch">The user name to search for.</param>
         ///<param name="pageSize">The size of the page of results to return.</param>
         public override ProfileInfoCollection FindInactiveProfilesByUserName(
             ProfileAuthenticationOption authenticationOption, string usernameToMatch, DateTime userInactiveSinceDate,
             int pageIndex, int pageSize, out int totalRecords)
         {
             return this.wrappedProvider.FindInactiveProfilesByUserName(authenticationOption, usernameToMatch, userInactiveSinceDate,
                                                            pageIndex, pageSize, out totalRecords);            
         }
         
         
         #endregion

    }
}
#endif
www.java2v.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.