public async Task <IActionResult> Index() { Config.ConStr = _configuration.GetConnectionString("Db"); try { DeviceDetector.SetVersionTruncation(VersionTruncation.VERSION_TRUNCATION_NONE); BotParser botParser = new BotParser(); var userAgent = Request.Headers["User-Agent"]; var result = DeviceDetector.GetInfoFromUserAgent(userAgent); if (string.IsNullOrEmpty(HttpContext.Session.GetString("_UserId"))) { var model = new LoginContent(); model.Alert = null; return(await Task.Run(() => RedirectToAction("SignIn", "Home", model))); } else { ViewBag.UserId = HttpContext.Session.GetString("_UserId"); ViewBag.Device = result.Match.DeviceType.ToString(); Console.WriteLine(ViewBag.Device); return(await Task.Run(() => View())); } } catch (Exception ex) { var Error = new ErrorViewModel(); Error.MessageContent = ex.ToString(); Error.MessageTitle = "Error "; Error.RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; return(await Task.Run(() => View())); } }
public async override void OnActionExecuting(ActionExecutingContext context) { base.OnActionExecuting(context); var listManinMenu = Task.Run(() => GetMainMenu()).Result; ViewBag.MainNav = listManinMenu; ViewBag.WebsiteSetting = Task.Run(() => GetSetting()).Result; ViewBag.SocialNetwork = Task.Run(() => GetSocialNetwork()).Result; ViewBag.FooterMenuNav = Task.Run(() => GetFooterMenu()).Result; ViewBag.Brands = Task.Run(() => GetBrandAsync()).Result; ViewBag.BranchContacts = Task.Run(() => GetBranchAsync()).Result; var path = $"{Request.Path}"; var absoluteUri = $"{Request.Host}{Request.Path}"; //var menuInfo = listManinMenu?.Where(x => x.NamePath != null && path == "/" + x.NamePath || x.Url == absoluteUri).FirstOrDefault(); //var image = menuInfo?.Image; //ViewBag.ImageBanner = image; ViewBag.Url = _configuration.GetApiUrl()?.FileUrl; ViewBag.ListLanguage = GetLanguage(); ViewBag.CurrentLanguage = CultureInfo.CurrentCulture.Name; DeviceDetector.SetVersionTruncation(VersionTruncation.VERSION_TRUNCATION_NONE); var userAgent = Request.Headers["User-Agent"]; ViewBag.DeviceType = DeviceDetector.GetInfoFromUserAgent(userAgent)?.Match?.DeviceType; }
public Task Invoke(HttpContext httpContext) { var userAgent = httpContext.Request.Headers["User-Agent"].FirstOrDefault(); try { var userAgentInfo = DeviceDetector.GetInfoFromUserAgent(userAgent); _requestMeta.Ip = httpContext.Connection.RemoteIpAddress.ToString(); if (userAgentInfo.Match.BrowserFamily != "Unknown") { _requestMeta.Browser = userAgentInfo.Match.Client.Name; _requestMeta.Os = userAgentInfo.Match.Os.Name; _requestMeta.Device = userAgentInfo.Match.DeviceType; _requestMeta.UserAgent = userAgent; } else { _requestMeta.Browser = ""; _requestMeta.Os = ""; _requestMeta.Device = ""; _requestMeta.UserAgent = userAgent; } } catch (Exception) { _requestMeta.Browser = ""; _requestMeta.Os = ""; _requestMeta.Device = ""; _requestMeta.UserAgent = userAgent; } return(_next(httpContext)); }
public UserAgentDetectorItem getInfo(string userAgent) { DeviceDetector.SetVersionTruncation(VersionTruncation.VERSION_TRUNCATION_NONE); DeviceDetector deviceDetector = new DeviceDetector(userAgent); deviceDetector.Parse(); UserAgentDetectorItem userAgentItem = new UserAgentDetectorItem(); DeviceDetectorResult deviceDetectorResult = ((DeviceDetectorResult)DeviceDetector.GetInfoFromUserAgent(userAgent).Match); ClientMatchResult client = deviceDetector.GetClient().Match; userAgentItem.client_summary = client.Name + " " + client.Version; userAgentItem.ua_family = deviceDetectorResult.BrowserFamily; userAgentItem.ua_version = client.Version; userAgentItem.os_family = deviceDetectorResult.Os.Name; userAgentItem.os_version = deviceDetectorResult.Os.Version; userAgentItem.ua_type = deviceDetector.GetClient().Match.Type; userAgentItem.bot_info = deviceDetector.IsBot(); userAgentItem.os_meta = new Os_meta(); userAgentItem.os_meta.name = deviceDetectorResult.Os.Name; userAgentItem.os_meta.short_name = deviceDetectorResult.Os.ShortName; userAgentItem.os_meta.version = deviceDetectorResult.Os.Version; userAgentItem.os_meta.platform = deviceDetectorResult.Os.Platform; /* String[] info = client.ToString().Split("\n"); * userAgentItem.ua_rendering_engine = info.Length > 4 ? info[4] : ""; * userAgentItem.ua_rendering_engine_version = info.Length > 5 ? info[5] : "";*/ userAgentItem.device = new Device(); userAgentItem.device.is_mobile = deviceDetector.IsMobile(); userAgentItem.device.is_tablet = deviceDetector.IsTablet(); userAgentItem.device.is_desktop = deviceDetector.IsDesktop(); userAgentItem.device.brand = deviceDetectorResult.DeviceBrand; userAgentItem.device.model = deviceDetectorResult.DeviceModel; userAgentItem.client = new Client(); userAgentItem.client.bot = deviceDetector.IsBot(); userAgentItem.client.user = !deviceDetector.IsBot(); return(userAgentItem); }
public async Task <IActionResult> TopupBerasAwal(int id) { DeviceDetector.SetVersionTruncation(VersionTruncation.VERSION_TRUNCATION_NONE); BotParser botParser = new BotParser(); var userAgent = Request.Headers["User-Agent"]; var result = DeviceDetector.GetInfoFromUserAgent(userAgent); ViewBag.Device = result.Match.DeviceType.ToString(); var model = new HomeModel(); if (ViewBag.Device == "smartphone") { return(await Task.Run(() => View(model))); } else { return(await Task.Run(() => View(model))); } }
public void TestParse(string fileNme) { //DeviceDetectorSettings.RegexesDirectory = @"D:\WorkSpaces\GitHubVisualStudio\DeviceDetector.Net\src\DeviceDetector.NET\"; var parser = new YamlParser <List <DeviceDetectorFixture> >(); var _fixtureData = parser.ParseFile($"{Utils.CurrentDirectory()}\\fixtures\\{fileNme}.yml"); foreach (var expected in _fixtureData) { var dd = DeviceDetector.GetInfoFromUserAgent(expected.user_agent); dd.Success.Should().BeTrue(); dd.Match.OsFamily.Should().BeEquivalentTo(expected.os_family); dd.Match.BrowserFamily.Should().BeEquivalentTo(expected.browser_family); if (expected.os != null) { if (expected.os is Dictionary <object, object> dicOs && dicOs.Count > 0) { var osName = dicOs["name"]; dd.Match.Os.Name.Should().BeEquivalentTo(osName.ToString()); } else { if (expected.os is List <object> listOs && listOs.Count > 0) { throw new Exception(); //var osName = dicOs["name"]; //dd.Match.Os.Name.Should().BeEquivalentTo(osName.ToString()); } } } if (expected.client != null) { dd.Match.Client.Type.Should().BeEquivalentTo(expected.client.type); dd.Match.Client.Name.Should().BeEquivalentTo(expected.client.name); } if (expected.device != null) { dd.Match.DeviceType?.Should().BeEquivalentTo(expected.device.type); dd.Match.DeviceBrand?.Should().BeEquivalentTo((expected.device.brand ?? "")); dd.Match.DeviceModel?.Should().BeEquivalentTo((expected.device.model ?? "")); } }