PersonalizationStateQuery.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebParts / PersonalizationStateQuery.cs / 1 / 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.Security.Permissions;
    using System.Web.Util;
 
    [Serializable]
    [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] 
    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; 
            }
        }
    }
}
                        

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