Beispiel #1
0
        /// <summary>
        /// Get client device type
        /// From Cache => Cookie => UserAgent
        /// </summary>
        /// <param name="context">Http context</param>
        /// <returns></returns>
        public static DeviceTypes GetClientDevice(this IHttpContext context)
        {
            var device = context.GetData <object>(DeviceKey);

            if (device != null)
            {
                return((DeviceTypes)device);
            }
            var deviceFromCookies = context.GetCookie(DeviceKey);

            if (!string.IsNullOrEmpty(deviceFromCookies))
            {
                device = deviceFromCookies.ConvertOrDefault <DeviceTypes>();
            }
            else
            {
                var userAgent = context.Request.GetUserAgent() ?? "";
                device = MobileCheckRegex.IsMatch(userAgent) ? DeviceTypes.Mobile : DeviceTypes.Desktop;
            }
            context.PutData(DeviceKey, device);
            return((DeviceTypes)device);
        }