public DeviceInfo BuildFromEventData(string userAgent) { var dd = new DeviceDetector(userAgent); dd.Parse(); var client = (BrowserMatchResult)dd.GetClient().Matches.First(r => r is BrowserMatchResult); var os = dd.GetOs(); if (!BrowserParser.GetBrowserFamily(client.ShortName, out var browserFamily)) { browserFamily = client.ShortName; } if (!OperatingSystemParser.GetOsFamily(os.Match.ShortName, out var osFamily) || osFamily == "GNU/Linux") { osFamily = os.Match.ShortName; } return(new DeviceInfo { Browser = new BrowserInfo() { Name = client.Name + " " + client.Version, Type = browserFamily }, DeviceType = dd.GetDeviceName(), OperatingSystem = new OsInfo() { Name = os.Match.Platform + " " + os.Match.Name + " " + os.Match.Version, Type = osFamily }, UserAgent = userAgent }); }
private bool UsesMobileBrowser() { if (!client.Success) { return(false); } var match = client.Match; return(match.Type == ClientType.Browser.Name && BrowserParser.IsMobileOnlyBrowser(((BrowserMatchResult)match).ShortName)); }
private static bool IsMobileBrowser(string userAgent) { ParseResult <ClientMatchResult> client = DetectClient(userAgent); if (!client.Success) { return(false); } var match = client.Match; return(match.Type == ClientType.Browser.Name && BrowserParser.IsMobileOnlyBrowser(((BrowserMatchResult)match).ShortName)); }
public void TestAllBrowsersTested() { var browsers = new BrowserParser(); BrowserParser.SetVersionTruncation(BrowserParser.VERSION_TRUNCATION_NONE); foreach (var fixture in _fixtureData) { browsers.SetUserAgent(fixture.user_agent); var result = browsers.Parse(); result.Success.Should().BeTrue("Match should be with success"); result.Match.Engine.Should().BeEquivalentTo(fixture.client.engine, "Engine should be equal " + fixture.user_agent); result.Match.EngineVersion.Should().BeEquivalentTo(fixture.client.engine_version.ToString(), "EngineVersion should be equal"); result.Match.Name.Should().BeEquivalentTo(fixture.client.name, "Names should be equal"); result.Match.ShortName.Should().BeEquivalentTo(fixture.client.short_name, "Short Names should be equal"); result.Match.Type.Should().BeEquivalentTo(fixture.client.type, "Type should be equal"); result.Match.Version.Should().BeEquivalentTo(fixture.client.version, "Version should be equal"); } }
/// <summary> /// Parses a useragent and returns the detected data /// /// ATTENTION: Use that method only for testing or very small applications /// To get fast results from DeviceDetector you need to make your own implementation, /// that should use one of the caching mechanisms. See README.md for more information. /// /// </summary> /// <param name="ua">UserAgent to parse</param> /// <returns></returns> public static ParseResult <DeviceDetectorResult> GetInfoFromUserAgent(string ua) { var result = new ParseResult <DeviceDetectorResult>(); var deviceDetector = new DeviceDetector(ua); deviceDetector.Parse(); var match = new DeviceDetectorResult { UserAgent = deviceDetector.userAgent }; if (deviceDetector.IsBot()) { match.Bot = deviceDetector.bot.Match; } match.Os = deviceDetector.os.Match; match.Client = deviceDetector.client.Match; match.DeviceType = deviceDetector.GetDeviceName(); match.DeviceBrand = deviceDetector.brand; match.DeviceModel = deviceDetector.model; if (deviceDetector.os.Success) { OperatingSystemParser.GetOsFamily(deviceDetector.os.Match.ShortName, out var osFamily); match.OsFamily = osFamily; } if (!(deviceDetector.client.Match is BrowserMatchResult browserMatch)) { return(result.Add(match)); } BrowserParser.GetBrowserFamily(browserMatch.ShortName, out var browserFamily); match.BrowserFamily = browserFamily; return(result.Add(match)); }
public void TestGetAvailableClients() { var available = new BrowserParser().GetAvailableClients(); BrowserParser.GetAvailableBrowsers().Count.Should().BeGreaterThan(available.Count); }
public void TestGetAvailableBrowserFamilies() { BrowserParser.GetAvailableBrowserFamilies().Count.Should().BeGreaterThan(5); }
/// <summary> /// Get the current http browser info /// </summary> public static BrowserInfo GetHttpCurrent() { BrowserParser browser = new BrowserParser(); return(new BrowserInfo(browser.OSName, browser.OSVersion, browser.HardwareArchitecture, browser.Name, browser.Version)); }