18 [NamePosition(0, Name =
"UaString")]
19 public string UaString {
get;
set; }
21 [NamePosition(1, Name =
"UaClass")]
22 public string UaClass {
get;
set; }
24 [NamePosition(2, Name =
"UaClassCode")]
25 public string UaClassCode {
get;
set; }
27 [NamePosition(3, Name =
"Ua")]
28 public string Ua {
get;
set; }
30 [NamePosition(4, Name =
"UaVersion")]
31 public string UaVersion {
get;
set; }
33 [NamePosition(5, Name =
"UaVersionMajor")]
34 public string UaVersionMajor {
get;
set; }
36 [NamePosition(6, Name =
"UaUptodateCurrentVersion")]
37 public string UaUptodateCurrentVersion {
get;
set; }
39 [NamePosition(7, Name =
"UaFamily")]
40 public string UaFamily {
get;
set; }
42 [NamePosition(8, Name =
"UaFamilyCode")]
43 public string UaFamilyCode {
get;
set; }
45 [NamePosition(9, Name =
"UaFamilyHompage")]
46 public string UaFamilyHompage {
get;
set; }
48 [NamePosition(10, Name =
"UaFamilyVendor")]
49 public string UaFamilyVendor {
get;
set; }
51 [NamePosition(11, Name =
"UaFamilyVendorCode")]
52 public string UaFamilyVendorCode {
get;
set; }
54 [NamePosition(12, Name =
"UaFamilyVendorHomepage")]
55 public string UaFamilyVendorHomepage {
get;
set; }
57 [NamePosition(13, Name =
"UaFamilyIcon")]
58 public string UaFamilyIcon {
get;
set; }
60 [NamePosition(14, Name =
"UaFamilyIconBig")]
61 public string UaFamilyIconBig {
get;
set; }
63 [NamePosition(15, Name =
"UaFamilyIconUrl")]
64 public string UaFamilyInfoUrl {
get;
set; }
66 [NamePosition(16, Name =
"UaEngine")]
67 public string UaEngine {
get;
set; }
69 [NamePosition(17, Name =
"Os")]
70 public string Os {
get;
set; }
72 [NamePosition(18, Name =
"OsCode")]
73 public string OsCode {
get;
set; }
75 [NamePosition(19, Name =
"OsHomepage")]
76 public string OsHomepage {
get;
set; }
78 [NamePosition(20, Name =
"OsIcon")]
79 public string OsIcon {
get;
set; }
81 [NamePosition(21, Name =
"OsIconBig")]
82 public string OsIconBig {
get;
set; }
84 [NamePosition(22, Name =
"OsInfoUrl")]
85 public string OsInfoUrl {
get;
set; }
87 [NamePosition(23, Name =
"OsFamily")]
88 public string OsFamily {
get;
set; }
90 [NamePosition(24, Name =
"OsFamilyCode")]
91 public string OsFamilyCode {
get;
set; }
93 [NamePosition(25, Name =
"OsFamilyVendor")]
94 public string OsFamilyVendor {
get;
set; }
96 [NamePosition(26, Name =
"OsFamilyVendorCode")]
97 public string OsFamilyVendorCode {
get;
set; }
99 [NamePosition(27, Name =
"OsFamilyVendorHomepage")]
100 public string OsFamilyVendorHomepage {
get;
set; }
102 [NamePosition(28, Name =
"DeviceClass")]
103 public string DeviceClass {
get;
set; }
105 [NamePosition(29, Name =
"DeviceClassCode")]
106 public string DeviceClassCode {
get;
set; }
108 [NamePosition(30, Name =
"DeviceClassIcon")]
109 public string DeviceClassIcon {
get;
set; }
111 [NamePosition(31, Name =
"DeviceClassIconBig")]
112 public string DeviceClassIconBig {
get;
set; }
114 [NamePosition(32, Name =
"DeviceClassInfoUrl")]
115 public string DeviceClassInfoUrl {
get;
set; }
117 [NamePosition(33, Name =
"CrawlerLastSeen")]
118 public string CrawlerLastSeen {
get;
set; }
120 [NamePosition(34, Name =
"CrawlerCategory")]
121 public string CrawlerCategory {
get;
set; }
123 [NamePosition(35, Name =
"CrawlerCategoryCode")]
124 public string CrawlerCategoryCode {
get;
set; }
126 [NamePosition(36, Name =
"CrawlerRespectRobotstxt")]
127 public string CrawlerRespectRobotstxt {
get;
set; }
129 [NamePosition(37, Name =
"DeviceMarketname")]
130 public string DeviceMarketname {
get;
set; }
132 [NamePosition(38, Name =
"DeviceBrand")]
133 public string DeviceBrand {
get;
set; }
135 [NamePosition(39, Name =
"DeviceBrandCode")]
136 public string DeviceBrandCode {
get;
set; }
138 [NamePosition(40, Name =
"DeviceBrandHomepage")]
139 public string DeviceBrandHomepage {
get;
set; }
141 [NamePosition(41, Name =
"DeviceBrandIcon")]
142 public string DeviceBrandIcon {
get;
set; }
144 [NamePosition(42, Name =
"DeviceBrandIconBig")]
145 public string DeviceBrandIconBig {
get;
set; }
147 [NamePosition(43, Name =
"DeviceBrandInfoUrl")]
148 public string DeviceBrandInfoUrl {
get;
set; }
150 [NamePosition(44, Name =
"Sec-Ch-Ua")]
151 public string SecChUa {
get;
set; }
153 [NamePosition(45, Name =
"SecChUaFullVersionList")]
154 public string SecChUaFullVersionList {
get;
set; }
156 [NamePosition(46, Name =
"SecChUaMobile")]
157 public string SecChUaMobile {
get;
set; }
159 [NamePosition(47, Name =
"SecChUaFullVersion")]
160 public string SecChUaFullVersion {
get;
set; }
162 [NamePosition(48, Name =
"SecChUaPlatform")]
163 public string SecChUaPlatform {
get;
set; }
165 [NamePosition(49, Name =
"SecChUaPlatformVersion")]
166 public string SecChUaPlatformVersion {
get;
set; }
168 [NamePosition(51, Name =
"SecChUaModel")]
169 public string SecChUaModel {
get;
set; }
181 public string Compare(
UserAgent toCompare)
185 foreach (var property
in toCompare.GetType().GetProperties())
187 var val1 =
property.GetValue(
this);
188 var val2 =
property.GetValue(toCompare);
192 if (val1 is
string || val2 is
string)
196 val1s = val1.ToString();
200 val2s = val2.ToString();
203 ret += $
"Property {property.Name} - {val1} and {val2} are different" + System.Environment.NewLine;
206 ret += $
"Property {property.Name} - {val1} and {val2} are different" + System.Environment.NewLine;