Ejemplo n.º 1
0
        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()));
            }
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 5
0
        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)));
            }
        }
Ejemplo n.º 6
0
        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 ?? ""));
                }
            }