/// <summary> /// Provides information to the web server about the requesting device. /// </summary> /// <param name="request"> /// HttpRequest that provides information about the source device. /// </param> /// <returns> /// A HttpBrowserCapabilities object containing information which /// retrieves device data from 51Degrees. /// </returns> public override HttpBrowserCapabilities GetBrowserCapabilities(HttpRequest request) { HttpBrowserCapabilities caps; var baseCaps = base.GetBrowserCapabilities(request); var match = WebProvider.GetMatch(request); if (match != null) { // A provider is present so 51Degrees can be used to override // some of the returned values. caps = new FiftyOneBrowserCapabilities( baseCaps, request, match); // Copy the adapters from the original. var adapters = baseCaps.Adapters.GetEnumerator(); while (adapters.MoveNext()) { caps.Adapters.Add(adapters.Key, adapters.Value); } // Copy the browsers from the original to prevent the Browsers // property returning null. if (baseCaps.Browsers != null) { foreach (string browser in baseCaps.Browsers) { caps.AddBrowser(browser); } } } else { // No 51Degrees active provider is present so we have to use // the base capabilities only. caps = baseCaps; } return(caps); }
/// <summary> /// Provides information to the web server about the requesting device. /// </summary> /// <param name="request"> /// HttpRequest that provides information about the source device. /// </param> /// <returns> /// A HttpBrowserCapabilities object containing information which /// retrieves device data from 51Degrees. /// </returns> public override HttpBrowserCapabilities GetBrowserCapabilities(HttpRequest request) { HttpBrowserCapabilities caps; var baseCaps = base.GetBrowserCapabilities(request); var match = WebProvider.GetMatch(request); if (match != null) { // A provider is present so 51Degrees can be used to override // some of the returned values. caps = new FiftyOneBrowserCapabilities( baseCaps, request, match); // Copy the adapters from the original. var adapters = baseCaps.Adapters.GetEnumerator(); while (adapters.MoveNext()) { caps.Adapters.Add(adapters.Key, adapters.Value); } // Copy the browsers from the original to prevent the Browsers // property returning null. if (baseCaps.Browsers != null) { foreach (string browser in baseCaps.Browsers) { caps.AddBrowser(browser); } } } else { // No 51Degrees active provider is present so we have to use // the base capabilities only. caps = baseCaps; } return caps; }