static void LoadFile(string filename)
        {
            if (!File.Exists(filename))
            {
                return;
            }

            TextReader input = new StreamReader(File.OpenRead(filename));

            using (input) {
                string    str;
                Hashtable allhash     = new Hashtable(StringComparer.OrdinalIgnoreCase);
                int       aux         = 0;
                ArrayList browserData = new ArrayList();
                while ((str = input.ReadLine()) != null)
                {
                    if (str.Length == 0 || str [0] == ';')
                    {
                        continue;
                    }

                    string      userAgent = str.Substring(1, str.Length - 2);
                    BrowserData data      = new BrowserData(userAgent);
                    ReadCapabilities(input, data);

                    /* Ignore default browser and file version information */
                    if (userAgent == "*" || userAgent == "GJK_Browscap_Version")
                    {
                        continue;
                    }

                    string key = data.GetBrowser();
                    if (key == null || allhash.ContainsKey(key))
                    {
                        allhash.Add(aux++, data);
                        browserData.Add(data);
                    }
                    else
                    {
                        allhash.Add(key, data);
                        browserData.Add(data);
                    }
                }

                alldata = browserData;
                foreach (BrowserData data in alldata)
                {
                    string pname = data.GetParentName();
                    if (pname == null)
                    {
                        continue;
                    }

                    data.Parent = (BrowserData)allhash [pname];
                }
            }
        }
Example #2
0
        //TODO - unncomment before official release
        public static void LogBrowser(BrowserData bd)
        {
            IBucketListData bld = new BucketListData(Utility.GetAppSetting(BucketListConstants.DB_CONN));
            int browserLogId = bld.LogBrowser(bd);

            foreach (System.Collections.DictionaryEntry kvp in bd.Capabilities)
            {
                bld.LogBrowserCapability(browserLogId, kvp.Key.ToString(), kvp.Value.ToString());
            }
        }
Example #3
0
 public ActionResult EditData(BrowserData data)
 {
     //todo:處理編輯,由於範例資料原為靜態資料,且為form post,故僅重導到Test0
     if (null == data)
     {
         return Json(new { success = false, msg = "編輯失敗" }, JsonRequestBehavior.AllowGet);
     }
     else
     {
         return Json(new { success = true, msg = "編輯成功" }, JsonRequestBehavior.AllowGet);
     }
 }
Example #4
0
        static void ReadCapabilities(TextReader input, BrowserData data)
        {
            string str, key;

            string [] keyvalue;

            while ((str = input.ReadLine()) != null && str.Length != 0)
            {
                keyvalue = str.Split(eq, 2);
                key      = keyvalue [0].ToLower(Helpers.InvariantCulture).Trim();
                if (key.Length == 0)
                {
                    continue;
                }
                data.Add(key, keyvalue [1]);
            }
        }
Example #5
0
        private List<BrowserData> GetMyDataSource()
        {
            List<BrowserData> result = new List<BrowserData>();

            //將資料來源隔離出來,這裡可以改用其他資料來源,如DB,CSV,XML....
            foreach (var item in MyDataSource())
            {
                BrowserData data = new BrowserData();
                data.Engine = item[0];
                data.Browser = item[1];
                data.Platform = item[2];
                data.Version = item[3];
                data.Grade = item[4];
                result.Add(data);
            }
            return result;
        }
Example #6
0
		static void ReadCapabilities (TextReader input, BrowserData data)
		{
			string str, key;
			string [] keyvalue;
			
			while ((str = input.ReadLine ()) != null && str.Length != 0) {
				keyvalue = str.Split (eq, 2);
				key = keyvalue [0].ToLower (Helpers.InvariantCulture).Trim ();
				if (key.Length == 0)
					continue;
				data.Add (key, keyvalue [1]);
			}
		}
Example #7
0
		static void LoadFile (string filename)
		{
			if (!File.Exists (filename))
				return;

			TextReader input = new StreamReader (File.OpenRead (filename));
			using (input) {
			string str;
			Hashtable allhash = new Hashtable (StringComparer.OrdinalIgnoreCase);
			int aux = 0;
			ArrayList browserData = new ArrayList ();
			while ((str = input.ReadLine ()) != null) {
				if (str.Length == 0 || str [0] == ';')
					continue;

				string userAgent = str.Substring (1, str.Length - 2);
				BrowserData data = new BrowserData (userAgent);
				ReadCapabilities (input, data);

				/* Ignore default browser and file version information */
				if (userAgent == "*" || userAgent == "GJK_Browscap_Version")
					continue;

				string key = data.GetBrowser ();
				if (key == null || allhash.ContainsKey (key)) {
					allhash.Add (aux++, data);
					browserData.Add (data);
				} else {
					allhash.Add (key, data);
					browserData.Add (data);
				}
			}			

			alldata = browserData;
			foreach (BrowserData data in alldata) {
				string pname = data.GetParentName ();
				if (pname == null)
					continue;

				data.Parent = (BrowserData) allhash [pname];
			}
			}
		}
Example #8
0
        protected BrowserData GetBrowserData()
        {
            BrowserData bd = new BrowserData();

            System.Web.HttpBrowserCapabilitiesBase browser = HttpContext.Request.Browser;

            bd.ActiveXControls = browser.ActiveXControls;
            bd.AOL = browser.AOL;
            bd.BackgroundSounds = browser.BackgroundSounds;
            bd.Beta = browser.Beta;
            bd.Browser = browser.Browser;
            bd.Browsers = browser.Browsers;
            bd.CanCombineFormsInDeck = browser.CanCombineFormsInDeck;
            bd.CanInitiateVoiceCall = browser.CanInitiateVoiceCall;
            bd.CanRenderAfterInputOrSelectElement = browser.CanRenderAfterInputOrSelectElement;
            bd.CanRenderEmptySelects = browser.CanRenderEmptySelects;
            bd.CanRenderInputAndSelectElementsTogether = browser.CanRenderInputAndSelectElementsTogether;
            bd.CanRenderMixedSelects = browser.CanRenderMixedSelects;
            bd.CanRenderOneventAndPrevElementsTogether = browser.CanRenderOneventAndPrevElementsTogether;
            bd.CanRenderPostBackCards = browser.CanRenderPostBackCards;
            bd.CanRenderSetvarZeroWithMultiSelectionList = browser.CanRenderSetvarZeroWithMultiSelectionList;
            bd.CanSendMail = browser.CanSendMail;
            bd.Capabilities = browser.Capabilities;
            bd.CDF = browser.CDF;
            bd.ClrVersion = browser.ClrVersion.ToString();
            bd.Cookies = browser.Cookies;
            bd.Crawler = browser.Crawler;
            bd.DefaultSubmitButtonLimit = browser.DefaultSubmitButtonLimit;
            bd.EcmaScriptVersion = browser.EcmaScriptVersion.ToString();
            bd.Frames = browser.Frames;
            bd.GatewayMajorVersion = browser.GatewayMajorVersion;
            bd.GatewayMinorVersion = browser.GatewayMinorVersion;
            bd.GatewayVersion = browser.GatewayVersion;
            bd.HasBackButton = browser.HasBackButton;
            bd.HidesRightAlignedMultiselectScrollbars = browser.HidesRightAlignedMultiselectScrollbars;
            bd.HtmlTextWriter = browser.HtmlTextWriter;
            bd.Id = browser.Id;
            bd.InputType = browser.InputType;
            bd.IsColor = browser.IsColor;
            bd.IsMobileDevice = browser.IsMobileDevice;
            bd.JavaApplets = browser.JavaApplets;
            bd.JScriptVersion = browser.JScriptVersion.ToString();
            bd.MajorVersion = browser.MajorVersion;
            bd.MaximumHrefLength = browser.MaximumHrefLength;
            bd.MaximumRenderedPageSize = browser.MaximumRenderedPageSize;
            bd.MaximumSoftkeyLabelLength = browser.MaximumSoftkeyLabelLength;
            bd.MinorVersion = browser.MinorVersion;
            bd.MinorVersionString = browser.MinorVersionString;
            bd.MobileDeviceManufacturer = browser.MobileDeviceManufacturer;
            bd.MobileDeviceModel = browser.MobileDeviceModel;
            bd.MSDomVersion = browser.MSDomVersion.ToString();
            bd.NumberOfSoftkeys = browser.NumberOfSoftkeys;
            bd.Platform = browser.Platform;
            bd.PreferredImageMime = browser.PreferredImageMime;
            bd.PreferredRenderingMime = browser.PreferredRenderingMime;
            bd.PreferredRenderingType = browser.PreferredRenderingType;
            bd.PreferredRequestEncoding = browser.PreferredRequestEncoding;
            bd.PreferredResponseEncoding = browser.PreferredResponseEncoding;
            bd.RendersBreakBeforeWmlSelectAndInput = browser.RendersBreakBeforeWmlSelectAndInput;
            bd.RendersBreaksAfterHtmlLists = browser.RendersBreaksAfterHtmlLists;
            bd.RendersBreaksAfterWmlAnchor = browser.RendersBreaksAfterWmlAnchor;
            bd.RendersBreaksAfterWmlInput = browser.RendersBreaksAfterWmlInput;
            bd.RendersWmlDoAcceptsInline = browser.RendersWmlDoAcceptsInline;
            bd.RendersWmlSelectsAsMenuCards = browser.RendersWmlSelectsAsMenuCards;
            bd.RequiredMetaTagNameValue = browser.RequiredMetaTagNameValue;
            bd.RequiresAttributeColonSubstitution = browser.RequiresAttributeColonSubstitution;
            bd.RequiresContentTypeMetaTag = browser.RequiresContentTypeMetaTag;
            bd.RequiresControlStateInSession = browser.RequiresControlStateInSession;
            bd.RequiresDBCSCharacter = browser.RequiresDBCSCharacter;
            bd.RequiresHtmlAdaptiveErrorReporting = browser.RequiresHtmlAdaptiveErrorReporting;
            bd.RequiresLeadingPageBreak = browser.RequiresLeadingPageBreak;
            bd.RequiresNoBreakInFormatting = browser.RequiresNoBreakInFormatting;
            bd.RequiresOutputOptimization = browser.RequiresOutputOptimization;
            bd.RequiresPhoneNumbersAsPlainText = browser.RequiresPhoneNumbersAsPlainText;
            bd.RequiresSpecialViewStateEncoding = browser.RequiresSpecialViewStateEncoding;
            bd.RequiresUniqueFilePathSuffix = browser.RequiresUniqueFilePathSuffix;
            bd.RequiresUniqueHtmlCheckboxNames = browser.RequiresUniqueHtmlCheckboxNames;
            bd.RequiresUniqueHtmlInputNames = browser.RequiresUniqueHtmlInputNames;
            bd.RequiresUrlEncodedPostfieldValues = browser.RequiresUrlEncodedPostfieldValues;
            bd.ScreenBitDepth = browser.ScreenBitDepth;
            bd.ScreenCharactersHeight = browser.ScreenCharactersHeight;
            bd.ScreenCharactersWidth = browser.ScreenCharactersWidth;
            bd.ScreenPixelsHeight = browser.ScreenPixelsHeight;
            bd.ScreenPixelsWidth = browser.ScreenPixelsWidth;
            bd.SupportsAccesskeyAttribute = browser.SupportsAccesskeyAttribute;
            bd.SupportsBodyColor = browser.SupportsBodyColor;
            bd.SupportsBold = browser.SupportsBold;
            bd.SupportsCacheControlMetaTag = browser.SupportsCacheControlMetaTag;
            bd.SupportsCallback = browser.SupportsCallback;
            bd.SupportsCss = browser.SupportsCss;
            bd.SupportsDivAlign = browser.SupportsDivAlign;
            bd.SupportsDivNoWrap = browser.SupportsDivNoWrap;
            bd.SupportsEmptyStringInCookieValue = browser.SupportsEmptyStringInCookieValue;
            bd.SupportsFontColor = browser.SupportsFontColor;
            bd.SupportsFontName = browser.SupportsFontName;
            bd.SupportsFontSize = browser.SupportsFontSize;
            bd.SupportsImageSubmit = browser.SupportsImageSubmit;
            bd.SupportsIModeSymbols = browser.SupportsIModeSymbols;
            bd.SupportsInputIStyle = browser.SupportsInputIStyle;
            bd.SupportsInputMode = browser.SupportsInputMode;
            bd.SupportsItalic = browser.SupportsItalic;
            bd.SupportsJPhoneMultiMediaAttributes = browser.SupportsJPhoneMultiMediaAttributes;
            bd.SupportsJPhoneSymbols = browser.SupportsJPhoneSymbols;
            bd.SupportsQueryStringInFormAction = browser.SupportsQueryStringInFormAction;
            bd.SupportsRedirectWithCookie = browser.SupportsRedirectWithCookie;
            bd.SupportsSelectMultiple = browser.SupportsSelectMultiple;
            bd.SupportsUncheck = browser.SupportsUncheck;
            bd.SupportsXmlHttp = browser.SupportsXmlHttp;
            bd.Tables = browser.Tables;
            bd.Type = browser.Type;
            bd.UseOptimizedCacheKey = browser.UseOptimizedCacheKey;
            bd.VBScript = browser.VBScript;
            bd.Version = browser.Version;
            bd.W3CDomVersion = browser.W3CDomVersion.ToString();
            bd.Win16 = browser.Win16;
            bd.Win32 = browser.Win32;

            return bd;
        }
		static void ReadCapabilities (TextReader input, BrowserData data)
		{
			string str;
			while ((str = input.ReadLine ()) != null && str.Length != 0) {
				string [] keyvalue = str.Split (eq, 2);
				data.Add (keyvalue [0], keyvalue [1]);
			}
		}
		static void LoadFile (string filename)
		{
#if TARGET_J2EE
			TextReader input = GetJavaTextReader(filename);
			if(input == null)
				return;
#else
			if (!File.Exists (filename))
				return;

			TextReader input = new StreamReader (File.OpenRead (filename));
#endif
			string str;
			Hashtable allhash = new Hashtable ();
			int aux = 0;
			while ((str = input.ReadLine ()) != null) {
				if (str.Length == 0 || str [0] == ';')
					continue;

				string userAgent = str.Substring (1, str.Length - 2);
				BrowserData data = new BrowserData (userAgent);
				ReadCapabilities (input, data);

				/* Ignore default browser and file version information */
				if (userAgent == "*" || userAgent == "GJK_Browscap_Version")
					continue;

				string key = data.GetBrowser ();
				if (key == null || allhash.ContainsKey (key)) {
					allhash.Add (aux++, data);
				} else {
					allhash.Add (key, data);
				}
			}

			alldata = allhash.Values;
			foreach (BrowserData data in alldata) {
				if (data.Parent != null)
					continue;

				string pname = data.GetParentName ();
				if (pname != null)
					data.Parent = (BrowserData) allhash [pname];
			}
		}