/// <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); }
/// <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; }
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; } }