ProviderUtil.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 / Util / ProviderUtil.cs / 1 / ProviderUtil.cs

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

/* 
 * Sec 
 *
 * Copyright (c) 1998-1999, Microsoft Corporation 
 *
 */

namespace System.Web.Util { 
    using System.Collections.Specialized;
    using System.Web.Mail; 
    using System.Configuration; 
    using System.Globalization;
 
    internal static class ProviderUtil {
        internal const int  Infinite = Int32.MaxValue;

        internal static void GetAndRemoveStringAttribute(NameValueCollection config, string attrib, string providerName, ref string val) { 
            val = config.Get(attrib);
            config.Remove(attrib); 
        } 

        internal static void GetAndRemovePositiveAttribute(NameValueCollection config, string attrib, string providerName, ref int val) { 
            GetPositiveAttribute(config, attrib, providerName, ref val);
            config.Remove(attrib);
        }
 
        internal static void GetPositiveAttribute(NameValueCollection config, string attrib, string providerName, ref int val) {
            string s = config.Get(attrib); 
            int t; 

            if (s == null) { 
                return;
            }

            try { 
                t = Convert.ToInt32(s, CultureInfo.InvariantCulture);
            } 
            catch (Exception e){ 
                if (e is ArgumentException || e is FormatException || e is OverflowException) {
                    throw new ConfigurationErrorsException( 
                        SR.GetString(SR.Invalid_provider_positive_attributes, attrib, providerName));
                }
                else {
                    throw; 
                }
 
            } 

            if (t < 0) { 
                throw new ConfigurationErrorsException(
                    SR.GetString(SR.Invalid_provider_positive_attributes, attrib, providerName));

            } 

            val = t; 
        } 

        internal static void GetAndRemovePositiveOrInfiniteAttribute(NameValueCollection config, string attrib, string providerName, ref int val) { 
            GetPositiveOrInfiniteAttribute(config, attrib, providerName, ref val);
            config.Remove(attrib);
        }
 
        internal static void GetPositiveOrInfiniteAttribute(NameValueCollection config, string attrib, string providerName, ref int val) {
            string s = config.Get(attrib); 
            int t; 

            if (s == null) { 
                return;
            }

            if (s == "Infinite") { 
                t = ProviderUtil.Infinite;
            } 
            else { 
                try {
                    t = Convert.ToInt32(s, CultureInfo.InvariantCulture); 
                }
                catch (Exception e){
                    if (e is ArgumentException || e is FormatException || e is OverflowException) {
                        throw new ConfigurationErrorsException( 
                            SR.GetString(SR.Invalid_provider_positive_attributes, attrib, providerName));
                    } 
                    else { 
                        throw;
                    } 

                }

                if (t < 0) { 
                    throw new ConfigurationErrorsException(
                        SR.GetString(SR.Invalid_provider_positive_attributes, attrib, providerName)); 
 
                }
            } 

            val = t;
        }
 
        internal static void GetAndRemoveNonZeroPositiveOrInfiniteAttribute(NameValueCollection config, string attrib, string providerName, ref int val) {
            GetNonZeroPositiveOrInfiniteAttribute(config, attrib, providerName, ref val); 
            config.Remove(attrib); 
        }
 
        internal static void GetNonZeroPositiveOrInfiniteAttribute(NameValueCollection config, string attrib, string providerName, ref int val) {
            string s = config.Get(attrib);
            int t;
 
            if (s == null) {
                return; 
            } 

            if (s == "Infinite") { 
                t = ProviderUtil.Infinite;
            }
            else {
                try { 
                    t = Convert.ToInt32(s, CultureInfo.InvariantCulture);
                } 
                catch (Exception e){ 
                    if (e is ArgumentException || e is FormatException || e is OverflowException) {
                        throw new ConfigurationErrorsException( 
                            SR.GetString(SR.Invalid_provider_non_zero_positive_attributes, attrib, providerName));
                    }
                    else {
                        throw; 
                    }
 
                } 

                if (t <= 0) { 
                    throw new ConfigurationErrorsException(
                        SR.GetString(SR.Invalid_provider_non_zero_positive_attributes, attrib, providerName));

                } 
            }
 
            val = t; 
        }
 
        internal static void GetAndRemoveBooleanAttribute(NameValueCollection config, string attrib, string providerName, ref bool val) {
            GetBooleanAttribute(config, attrib, providerName, ref val);
            config.Remove(attrib);
        } 

        internal static void GetBooleanAttribute(NameValueCollection config, string attrib, string providerName, ref bool val) { 
            string s = config.Get(attrib); 
            if (s == null) {
                return; 
            }

            if (s == "true") {
                val = true; 
            }
            else if (s == "false") { 
                val = false; 
            }
            else { 
                throw new ConfigurationErrorsException(SR.GetString(SR.Invalid_provider_attribute, attrib, providerName, s));
            }
        }
 
        internal static void GetAndRemoveRequiredNonEmptyStringAttribute(NameValueCollection config, string attrib, string providerName, ref string val) {
            GetRequiredNonEmptyStringAttribute(config, attrib, providerName, ref val); 
            config.Remove(attrib); 
        }
 
        internal static void GetRequiredNonEmptyStringAttribute(NameValueCollection config, string attrib, string providerName, ref string val) {
            GetNonEmptyStringAttributeInternal(config, attrib, providerName, ref val, true);
        }
 
#if UNUSED_CODE
        internal static void GetAndRemoveNonEmptyStringAttribute(NameValueCollection config, string attrib, string providerName, ref string val) { 
            GetNonEmptyStringAttributeInternal(config, attrib, providerName, ref val, false); 
            config.Remove(attrib);
        } 
#endif

        private static void GetNonEmptyStringAttributeInternal(NameValueCollection config, string attrib, string providerName, ref string val, bool required) {
            string s = config.Get(attrib); 

            // If it's (null and required) -OR- (empty string) we throw 
            if ((s == null && required) || (s.Length == 0)) { 
                throw new ConfigurationErrorsException(
                    SR.GetString(SR.Provider_missing_attribute, attrib, providerName)); 
            }

            val = s;
        } 

        internal static void CheckUnrecognizedAttributes(NameValueCollection config, string providerName) { 
            if (config.Count > 0) 
            {
                string attribUnrecognized = config.GetKey(0); 
                if (!String.IsNullOrEmpty(attribUnrecognized))
                    throw new ConfigurationErrorsException(
                                    SR.GetString(SR.Unexpected_provider_attribute, attribUnrecognized, providerName));
            } 
        }
    } 
 
}
                        

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