You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.6 KiB

3 weeks ago
// Copyright (c) 2019 Sarin Na Wangkanai, All Rights Reserved.
// The Apache v2. See License.txt in the project root for license information.
using System;
namespace Wood.Util.Browser
{
public class BaseBrowser
{
public string? Name { get; set; }
public string? Maker { get; set; }
public BrowserType Type { get; set; } = BrowserType.Generic;
public Version? Version { get; set; }
public BaseBrowser() { }
public BaseBrowser(BrowserType browserType) => Type = browserType;
public BaseBrowser(BrowserType browserType, Version version) : this(browserType) => Version = version;
public BaseBrowser(string name)
{
//BrowserType type = null;
////if (!System.Enum.TryParse(name, true, out type))
//// throw new BrowserNotFoundException(name, "not found");
//Type = type;
}
public Version ToVersion(string version)
{
version = RemoveWhitespace(version);
return Version.TryParse(version, out var parsedVersion) ? parsedVersion : new Version(0, 0);
}
public string RemoveWhitespace(string version) => version.Contains(" ") ? version.Replace(" ", "") : version;
}
public enum BrowserType
{
IE,
Chrome,
Safari,
Firefox,
Edge,
Opera,
Generic
}
public class BrowserHelper
{
public static string GetBrwoserInfo(string userAgent)
{
var ie = new InternetExplorer(userAgent);
if (ie.Type == BrowserType.IE)
return string.Format("{0} {1}", ie.Type.ToString(), ie.Version);
var firefox = new Firefox(userAgent);
if (firefox.Type == BrowserType.Firefox)
return string.Format("{0} {1}", firefox.Type.ToString(), firefox.Version);
var edge = new Edge(userAgent);
if (edge.Type == BrowserType.Edge)
return string.Format("{0} {1}", edge.Type.ToString(), edge.Version);
var opera = new Opera(userAgent);
if (opera.Type == BrowserType.Opera)
return string.Format("{0} {1}", opera.Type.ToString(), opera.Version);
var chrome = new Chrome(userAgent);
if (chrome.Type == BrowserType.Chrome)
return string.Format("{0} {1}", chrome.Type.ToString(), chrome.Version);
var safari = new Safari(userAgent);
if (safari.Type == BrowserType.Safari)
return string.Format("{0} {1}", safari.Type.ToString(), safari.Version);
return string.Empty;
}
}
}