PersonalizationStateQuery.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 / Web / UI / WebParts / PersonalizationStateQuery.cs / 1305376 / PersonalizationStateQuery.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Web.UI.WebControls.WebParts { 
 
    using System;
    using System.Collections.Generic; 
    using System.Collections.Specialized;
    using System.Web.Util;

    [Serializable] 
    public sealed class PersonalizationStateQuery {
        private static readonly Dictionary _knownPropertyTypeMappings; 
 
        private HybridDictionary _data;
 
        static PersonalizationStateQuery() {
            _knownPropertyTypeMappings = new Dictionary(StringComparer.OrdinalIgnoreCase);
            _knownPropertyTypeMappings["PathToMatch"] = typeof(string);
            _knownPropertyTypeMappings["UserInactiveSinceDate"] = typeof(DateTime); 
            _knownPropertyTypeMappings["UsernameToMatch"] = typeof(string);
        } 
 
        public PersonalizationStateQuery() {
            _data = new HybridDictionary(true); 

            // VSWhidbey 357097: UserInactiveSinceDate needs to have a default value returned for the indexer property
            _data["UserInactiveSinceDate"] = PersonalizationAdministration.DefaultInactiveSinceDate;
        } 

        public string PathToMatch { 
            get { 
                return (string) this["PathToMatch"];
            } 
            set {
                if (value != null) {
                    value = value.Trim();
                } 
                _data["PathToMatch"] = value;
            } 
        } 

        public DateTime UserInactiveSinceDate { 
            get {
                object o = this["UserInactiveSinceDate"];
                Debug.Assert(o != null, "Should always have a default value!");
                return (DateTime) o; 
            }
            set { 
                _data["UserInactiveSinceDate"] = value; 
            }
        } 

        public string UsernameToMatch {
            get {
                return (string) this["UsernameToMatch"]; 
            }
            set { 
                if (value != null) { 
                    value = value.Trim();
                } 
                _data["UsernameToMatch"] = value;
            }
        }
 
        public object this[string queryKey] {
            get { 
                queryKey = StringUtil.CheckAndTrimString(queryKey, "queryKey"); 
                return _data[queryKey];
            } 
            set {
                queryKey = StringUtil.CheckAndTrimString(queryKey, "queryKey");

                // VSWhidbey 436311: We need to check the value types for known properties 
                if (_knownPropertyTypeMappings.ContainsKey(queryKey)) {
                    Type valueType = _knownPropertyTypeMappings[queryKey]; 
                    Debug.Assert(valueType != null); 
                    if ((value == null && valueType.IsValueType) ||
                         (value != null && !valueType.IsAssignableFrom(value.GetType()))) { 
                        throw new ArgumentException(
                            SR.GetString(SR.PersonalizationStateQuery_IncorrectValueType,
                                         queryKey, valueType.FullName));
                    } 
                }
 
                _data[queryKey] = value; 
            }
        } 
    }
}


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

namespace System.Web.UI.WebControls.WebParts { 
 
    using System;
    using System.Collections.Generic; 
    using System.Collections.Specialized;
    using System.Web.Util;

    [Serializable] 
    public sealed class PersonalizationStateQuery {
        private static readonly Dictionary _knownPropertyTypeMappings; 
 
        private HybridDictionary _data;
 
        static PersonalizationStateQuery() {
            _knownPropertyTypeMappings = new Dictionary(StringComparer.OrdinalIgnoreCase);
            _knownPropertyTypeMappings["PathToMatch"] = typeof(string);
            _knownPropertyTypeMappings["UserInactiveSinceDate"] = typeof(DateTime); 
            _knownPropertyTypeMappings["UsernameToMatch"] = typeof(string);
        } 
 
        public PersonalizationStateQuery() {
            _data = new HybridDictionary(true); 

            // VSWhidbey 357097: UserInactiveSinceDate needs to have a default value returned for the indexer property
            _data["UserInactiveSinceDate"] = PersonalizationAdministration.DefaultInactiveSinceDate;
        } 

        public string PathToMatch { 
            get { 
                return (string) this["PathToMatch"];
            } 
            set {
                if (value != null) {
                    value = value.Trim();
                } 
                _data["PathToMatch"] = value;
            } 
        } 

        public DateTime UserInactiveSinceDate { 
            get {
                object o = this["UserInactiveSinceDate"];
                Debug.Assert(o != null, "Should always have a default value!");
                return (DateTime) o; 
            }
            set { 
                _data["UserInactiveSinceDate"] = value; 
            }
        } 

        public string UsernameToMatch {
            get {
                return (string) this["UsernameToMatch"]; 
            }
            set { 
                if (value != null) { 
                    value = value.Trim();
                } 
                _data["UsernameToMatch"] = value;
            }
        }
 
        public object this[string queryKey] {
            get { 
                queryKey = StringUtil.CheckAndTrimString(queryKey, "queryKey"); 
                return _data[queryKey];
            } 
            set {
                queryKey = StringUtil.CheckAndTrimString(queryKey, "queryKey");

                // VSWhidbey 436311: We need to check the value types for known properties 
                if (_knownPropertyTypeMappings.ContainsKey(queryKey)) {
                    Type valueType = _knownPropertyTypeMappings[queryKey]; 
                    Debug.Assert(valueType != null); 
                    if ((value == null && valueType.IsValueType) ||
                         (value != null && !valueType.IsAssignableFrom(value.GetType()))) { 
                        throw new ArgumentException(
                            SR.GetString(SR.PersonalizationStateQuery_IncorrectValueType,
                                         queryKey, valueType.FullName));
                    } 
                }
 
                _data[queryKey] = value; 
            }
        } 
    }
}


// File provided for Reference Use Only by Microsoft Corporation (c) 2007.

                        

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