Ejemplo n.º 1
0
        /// <summary>
        /// Determines of browser currently requesting page adaquately supports passed un client-side functionality
        /// </summary>
        /// <param name="eFunctionality">Desired Functionality</param>
        /// <returns>True when browser supports it</returns>
        /// <remarks>
        /// </remarks>
        /// <history>
        ///     [Jon Henning]	8/3/2004	Created
        /// </history>
        public static bool BrowserSupportsFunctionality(ClientFunctionality eFunctionality)
        {
            if (HttpContext.Current == null)
            {
                return(true);
            }
            bool blnSupports = false;

            if (ClientAPIDisabled() == false)
            {
                BrowserCaps objCaps = BrowserCaps.GetBrowserCaps();
                if (objCaps != null)
                {
                    HttpRequest objRequest   = HttpContext.Current.Request;
                    string      strUserAgent = objRequest.UserAgent;
                    // HACK : Modified to not error if object is null.
                    //if (strUserAgent.Length > 0)
                    if (!String.IsNullOrEmpty(strUserAgent))
                    {
                        //First check whether we have checked this browser before
                        if (objCaps.FunctionalityDictionary.ContainsKey(strUserAgent) == false)
                        {
                            string            strBrowser  = objRequest.Browser.Browser;
                            double            dblVersion  = Convert.ToDouble(objRequest.Browser.MajorVersion + objRequest.Browser.MinorVersion);
                            int               iBitValue   = 0;
                            FunctionalityInfo objFuncInfo = null;
                            //loop through all functionalities for this UserAgent and determine the bitvalue
                            foreach (ClientFunctionality eFunc in Enum.GetValues(typeof(ClientFunctionality)))
                            {
                                objFuncInfo = objCaps.Functionality[eFunc];
                                if (objFuncInfo.HasMatch(strUserAgent, strBrowser, dblVersion))
                                {
                                    iBitValue += (int)eFunc;
                                }
                            }
                            objCaps.FunctionalityDictionary[strUserAgent] = iBitValue;
                        }
                        blnSupports = (((int)(objCaps.FunctionalityDictionary[strUserAgent])) & (int)eFunctionality) != 0;
                    }
                }
            }

            return(blnSupports);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Determines of browser currently requesting page adaquately supports passed un client-side functionality
        /// </summary>
        /// <param name="eFunctionality">Desired Functionality</param>
        /// <returns>True when browser supports it</returns>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// 	[Jon Henning]	8/3/2004	Created
        /// </history>
        public static bool BrowserSupportsFunctionality(ClientFunctionality eFunctionality)
        {
            if (HttpContext.Current == null)
            {
                return true;
            }
            bool blnSupports = false;

            if (ClientAPIDisabled() == false)
            {
                BrowserCaps objCaps = BrowserCaps.GetBrowserCaps();
                if (objCaps != null)
                {
                    HttpRequest objRequest = HttpContext.Current.Request;
                    string strUserAgent = objRequest.UserAgent;
                    // HACK : Modified to not error if object is null.
                    //if (strUserAgent.Length > 0)
                    if (!String.IsNullOrEmpty(strUserAgent))
                    {
                        //First check whether we have checked this browser before
                        if (objCaps.FunctionalityDictionary.ContainsKey(strUserAgent) == false)
                        {
                            string strBrowser = objRequest.Browser.Browser;
                            double dblVersion = Convert.ToDouble(objRequest.Browser.MajorVersion + objRequest.Browser.MinorVersion);
                            int iBitValue = 0;
                            FunctionalityInfo objFuncInfo = null;
                            //loop through all functionalities for this UserAgent and determine the bitvalue 
                            foreach (ClientFunctionality eFunc in Enum.GetValues(typeof(ClientFunctionality)))
                            {
                                objFuncInfo = objCaps.Functionality[eFunc];
                                if (objFuncInfo.HasMatch(strUserAgent, strBrowser, dblVersion))
                                {
                                    iBitValue += (int)eFunc;
                                }
                            }
                            objCaps.FunctionalityDictionary[strUserAgent] = iBitValue;
                        }
                        blnSupports = (((int)(objCaps.FunctionalityDictionary[strUserAgent])) & (int)eFunctionality) != 0;
                    }
                }
            }

            return blnSupports;
        }
Ejemplo n.º 3
0
 public static bool BrowserSupportsFunctionality(ClientFunctionality eFunctionality)
 {
     if (HttpContext.Current == null)
     {
         return true;
     }
     HttpRequest httpRequest = HttpContext.Current.Request;
     if (ClientAPIDisabled())
     {
         return false;
     }
     XmlDocument xmlDocument = GetClientAPICapsDOM();
     string browser = httpRequest.Browser.Browser;
     double dblVersion = (httpRequest.Browser.MajorVersion + httpRequest.Browser.MinorVersion);
     string s = Enum.GetName(eFunctionality.GetType(), eFunctionality);
     bool supportsFunctionality = CapsMatchFound(xmlDocument.SelectSingleNode(("/capabilities/functionality[@nm='" + s + "']/supports")), httpRequest.UserAgent, browser, dblVersion);
     if (!CapsMatchFound(xmlDocument.SelectSingleNode(("/capabilities/functionality[@nm='" + s + "']/excludes")), httpRequest.UserAgent, browser, dblVersion))
     {
         return supportsFunctionality;
     }
     else
     {
         return false;
     }
 }