// Helper method used by CopyPersonalizationState()
        private void ApplyPersonalizationState(Control control, PersonalizationInfo info)
        {
            ITrackingPersonalizable trackingPersonalizable = control as ITrackingPersonalizable;
            IPersonalizable         customPersonalizable   = control as IPersonalizable;

            if (trackingPersonalizable != null)
            {
                trackingPersonalizable.BeginLoad();
            }

            // If customPersonalizable is null, then info.CustomProperties should also be null
            Debug.Assert(!(customPersonalizable == null && info.CustomProperties != null));

            if (customPersonalizable != null && info.CustomProperties != null && info.CustomProperties.Count > 0)
            {
                customPersonalizable.Load(info.CustomProperties);
            }

            if (info.Properties != null && info.Properties.Count > 0)
            {
                BlobPersonalizationState.SetPersonalizedProperties(control, info.Properties);
            }

            if (trackingPersonalizable != null)
            {
                trackingPersonalizable.EndLoad();
            }
        }
        // Helper method used by CopyPersonalizationState()
        private PersonalizationInfo ExtractPersonalizationState(Control control)
        {
            ITrackingPersonalizable trackingPersonalizable = control as ITrackingPersonalizable;
            IPersonalizable         customPersonalizable   = control as IPersonalizable;

            if (trackingPersonalizable != null)
            {
                trackingPersonalizable.BeginSave();
            }

            PersonalizationInfo info = new PersonalizationInfo();

            if (customPersonalizable != null)
            {
                info.CustomProperties = new PersonalizationDictionary();
                customPersonalizable.Save(info.CustomProperties);
            }
            info.Properties = BlobPersonalizationState.GetPersonalizedProperties(control, PersonalizationScope.Shared);

            if (trackingPersonalizable != null)
            {
                trackingPersonalizable.EndSave();
            }

            return(info);
        }
Beispiel #3
0
        public virtual void SavePersonalizationState(PersonalizationState state)
        {
            string str;
            string str2;

            if (state == null)
            {
                throw new ArgumentNullException("state");
            }
            BlobPersonalizationState state2 = state as BlobPersonalizationState;

            if (state2 == null)
            {
                throw new ArgumentException(System.Web.SR.GetString("PersonalizationProvider_WrongType"), "state");
            }
            WebPartManager webPartManager = state2.WebPartManager;

            this.GetParameters(webPartManager, out str, out str2);
            byte[] dataBlob = null;
            bool   isEmpty  = state2.IsEmpty;

            if (!isEmpty)
            {
                dataBlob = state2.SaveDataBlob();
                isEmpty  = (dataBlob == null) || (dataBlob.Length == 0);
            }
            if (isEmpty)
            {
                this.ResetPersonalizationBlob(webPartManager, str, str2);
            }
            else
            {
                this.SavePersonalizationBlob(webPartManager, str, str2, dataBlob);
            }
        }
        /// <devdoc>
        /// Allows the provider to load personalization data. The specified
        /// WebPartManager is used to access the current page, which can be used
        /// to retrieve the path and user information.
        /// </devdoc>
        public virtual PersonalizationState LoadPersonalizationState(WebPartManager webPartManager, bool ignoreCurrentUser)
        {
            if (webPartManager == null)
            {
                throw new ArgumentNullException("webPartManager");
            }

            string path;
            string userName;

            GetParameters(webPartManager, out path, out userName);

            if (ignoreCurrentUser)
            {
                userName = null;
            }

            byte[] sharedDataBlob = null;
            byte[] userDataBlob   = null;
            LoadPersonalizationBlobs(webPartManager, path, userName, ref sharedDataBlob, ref userDataBlob);

            BlobPersonalizationState blobState = new BlobPersonalizationState(webPartManager);

            blobState.LoadDataBlobs(sharedDataBlob, userDataBlob);

            return(blobState);
        }
Beispiel #5
0
        private void ApplyPersonalizationState(Control control, PersonalizationInfo info)
        {
            ITrackingPersonalizable personalizable  = control as ITrackingPersonalizable;
            IPersonalizable         personalizable2 = control as IPersonalizable;

            if (personalizable != null)
            {
                personalizable.BeginLoad();
            }
            if (((personalizable2 != null) && (info.CustomProperties != null)) && (info.CustomProperties.Count > 0))
            {
                personalizable2.Load(info.CustomProperties);
            }
            if ((info.Properties != null) && (info.Properties.Count > 0))
            {
                BlobPersonalizationState.SetPersonalizedProperties(control, info.Properties);
            }
            if (personalizable != null)
            {
                personalizable.EndLoad();
            }
        }
Beispiel #6
0
        public virtual PersonalizationState LoadPersonalizationState(WebPartManager webPartManager, bool ignoreCurrentUser)
        {
            string str;
            string str2;

            if (webPartManager == null)
            {
                throw new ArgumentNullException("webPartManager");
            }
            this.GetParameters(webPartManager, out str, out str2);
            if (ignoreCurrentUser)
            {
                str2 = null;
            }
            byte[] sharedDataBlob = null;
            byte[] userDataBlob   = null;
            this.LoadPersonalizationBlobs(webPartManager, str, str2, ref sharedDataBlob, ref userDataBlob);
            BlobPersonalizationState state = new BlobPersonalizationState(webPartManager);

            state.LoadDataBlobs(sharedDataBlob, userDataBlob);
            return(state);
        }
        /// <devdoc>
        /// Allows the provider to save personalization data. The specified information
        /// contains a reference to the WebPartManager, which is used to access the
        /// current Page, and its path and user information.
        /// </devdoc>
        public virtual void SavePersonalizationState(PersonalizationState state)
        {
            if (state == null)
            {
                throw new ArgumentNullException("state");
            }

            BlobPersonalizationState blobState = state as BlobPersonalizationState;

            if (blobState == null)
            {
                throw new ArgumentException(SR.GetString(SR.PersonalizationProvider_WrongType), "state");
            }

            WebPartManager webPartManager = blobState.WebPartManager;

            string path;
            string userName;

            GetParameters(webPartManager, out path, out userName);

            byte[] dataBlob = null;
            bool   reset    = blobState.IsEmpty;

            if (reset == false)
            {
                dataBlob = blobState.SaveDataBlob();
                reset    = (dataBlob == null) || (dataBlob.Length == 0);
            }

            if (reset)
            {
                ResetPersonalizationBlob(webPartManager, path, userName);
            }
            else
            {
                SavePersonalizationBlob(webPartManager, path, userName, dataBlob);
            }
        }
 public virtual PersonalizationState LoadPersonalizationState(WebPartManager webPartManager, bool ignoreCurrentUser)
 {
     string str;
     string str2;
     if (webPartManager == null)
     {
         throw new ArgumentNullException("webPartManager");
     }
     this.GetParameters(webPartManager, out str, out str2);
     if (ignoreCurrentUser)
     {
         str2 = null;
     }
     byte[] sharedDataBlob = null;
     byte[] userDataBlob = null;
     this.LoadPersonalizationBlobs(webPartManager, str, str2, ref sharedDataBlob, ref userDataBlob);
     BlobPersonalizationState state = new BlobPersonalizationState(webPartManager);
     state.LoadDataBlobs(sharedDataBlob, userDataBlob);
     return state;
 }
        /// <devdoc>
        /// Allows the provider to load personalization data. The specified
        /// WebPartManager is used to access the current page, which can be used
        /// to retrieve the path and user information.
        /// </devdoc>
        public virtual PersonalizationState LoadPersonalizationState(WebPartManager webPartManager, bool ignoreCurrentUser) {
            if (webPartManager == null) {
                throw new ArgumentNullException("webPartManager");
            }

            string path;
            string userName;
            GetParameters(webPartManager, out path, out userName);

            if (ignoreCurrentUser) {
                userName = null;
            }

            byte[] sharedDataBlob = null;
            byte[] userDataBlob = null;
            LoadPersonalizationBlobs(webPartManager, path, userName, ref sharedDataBlob, ref userDataBlob);

            BlobPersonalizationState blobState = new BlobPersonalizationState(webPartManager);
            blobState.LoadDataBlobs(sharedDataBlob, userDataBlob);

            return blobState;
        }