|
/*
Used to determine Browser Capabilities by the Browsers UserAgent string.
Copyright (C) 2002-Present Owen Brady (Ocean at xvision.com)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
using System;
namespace Ocean.Web.HttpCapabilities
{
/// <summary>
/// Allows read only access to browser details that were able to be determined.
/// </summary>
public class Result
{
System.Collections.Specialized.StringDictionary Items;
/// <summary>
/// Initializes a new instance of the Result class.
/// </summary>
/// <param name="items">
/// This is the data which this class will be handle request made though this class.
/// </param>
internal Result(System.Collections.Specialized.StringDictionary items)
{
Items =items;
}
/// <summary>
/// Gets the browser string (if any) that was transmitted in the User-Agent header.
/// </summary>
public string Browser
{
get
{
return this["browser"];
}
}
/// <summary>
/// Gets the full version number of the client browser.
/// </summary>
public string Version
{
get
{
return this["version"];
}
}
/// <summary>
/// Gets the Platform that the browser is running on.
/// </summary>
public string Platform
{
get
{
return this["platform"];
}
}
/// <summary>
/// Gets the Operating System that the browser is running on.
/// </summary>
public string OS
{
get
{
return this["os"];
}
}
/// <summary>
/// Gets the Mobile Device Manufacturer name.
/// </summary>
public string MobileDeviceManufacturer
{
get
{
return this["MobileDeviceManufacturer"];
}
}
/// <summary>
/// Gets the Mobile Device Model information.
/// </summary>
public string MobileDeviceModel
{
get
{
return this["mobileDeviceModel"];
}
}
/// <summary>
/// Gets the browsers Html Rendering Engine.
/// </summary>
public string BrowserHtmlEngine
{
get
{
return this["BrowserHtmlEngine"];
}
}
/// <summary>
/// Gets the browsers Build.
/// </summary>
public string BrowserBuild
{
get
{
return this["BrowserBuild"];
}
}
/// <summary>
/// Gets if the Browser was identified as a bot of some kind.
/// </summary>
public bool IsBot
{
get
{
if (this["IsBot"].ToLower()=="true")
{
return true;
}
return false;
}
}
/// <summary>
/// Gets if the Browser was identified as a Mobile Device.
/// </summary>
public bool isMobileDevice
{
get
{
if (this["isMobileDevice"].ToLower()=="true")
{
return true;
}
return false;
}
}
/// <summary>
/// Gets the Dot.Net version (when present) of the most recent version listed of the runtime.
/// </summary>
public string clrVersion
{
get
{
return this["clrVersion"];
}
}
/// <summary>
/// Gets the raw data that matches the key supplied.
/// </summary>
public string this [string key]
{
get
{
if (Items[key.ToLower()]!=null)
{
return Items[key.ToLower()];
}
return "";
}
}
/// <summary>
/// Gets the keys returned from processing.
/// </summary>
public string[] Keys
{
get
{
string[] a = new string[Items.Keys.Count];
Items.Keys.CopyTo(a,0);
return a;
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Chris Maunder is the co-founder of
CodeProject and
ContentLab.com, and has been a prominent figure in the software development community for nearly 30 years. Hailing from Australia, Chris has a background in Mathematics, Astrophysics, Environmental Engineering and Defence Research. His programming endeavours span everything from FORTRAN on Super Computers, C++/MFC on Windows, through to to high-load .NET web applications and Python AI applications on everything from macOS to a Raspberry Pi. Chris is a full-stack developer who is as comfortable with SQL as he is with CSS.
In the late 1990s, he and his business partner David Cunningham recognized the need for a platform that would facilitate knowledge-sharing among developers, leading to the establishment of CodeProject.com in 1999. Chris's expertise in programming and his passion for fostering a collaborative environment have played a pivotal role in the success of CodeProject.com. Over the years, the website has grown into a vibrant community where programmers worldwide can connect, exchange ideas, and find solutions to coding challenges. Chris is a prolific contributor to the developer community through his articles and tutorials, and his latest passion project,
CodeProject.AI.
In addition to his work with CodeProject.com, Chris co-founded ContentLab and DeveloperMedia, two projects focussed on helping companies make their Software Projects a success. Chris's roles included Product Development, Content Creation, Client Satisfaction and Systems Automation.