1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
***************
*** 245,334 ****
string mb2Equivalent = null,
string version = null)
{
! var regInfo = LicenseFile.GetRegInfo(feature);
! var lastChecked = regInfo == null ? DateTime.MinValue : regInfo.LastChecked;
! var expDate = regInfo == null ? DateTime.MinValue : regInfo.ExpirationDate;
!
! var maxCacheDays = 14;
! var nextCheckDate = new [] { expDate, lastChecked.AddDays(maxCacheDays) }.Min();
!
! if (nextCheckDate > DateTime.UtcNow.AddDays(maxCacheDays))
! {
! nextCheckDate = DateTime.MinValue;
! }
!
! //check the reg file first to alleviate strain on the MB admin server - must actually check in every 30 days tho
! var reg = new RegRecord
! {
! // Cache the result for up to a week
! registered = regInfo != null && nextCheckDate >= DateTime.UtcNow && expDate >= DateTime.UtcNow,
! expDate = expDate
! };
!
! var success = reg.registered;
!
! if (!(lastChecked > DateTime.UtcNow.AddDays(-1)) || !reg.registered)
! {
! var data = new Dictionary<string, string>
! {
! { "feature", feature },
! { "key", SupporterKey },
! { "mac", _appHost.SystemId },
! { "systemid", _appHost.SystemId },
! { "mb2equiv", mb2Equivalent },
! { "ver", version },
! { "platform", _appHost.OperatingSystemDisplayName }
! };
!
! try
! {
! var options = new HttpRequestOptions
! {
! Url = MBValidateUrl,
!
! // Seeing block length errors
! EnableHttpCompression = false,
! BufferContent = false
! };
!
! options.SetPostData(data);
!
! using (var json = (await _httpClient.Post(options).ConfigureAwait(false)).Content)
! {
! reg = _jsonSerializer.DeserializeFromStream<RegRecord>(json);
! success = true;
! }
!
! if (reg.registered)
! {
! _logger.Info("Registered for feature {0}", feature);
! LicenseFile.AddRegCheck(feature, reg.expDate);
! }
! else
! {
! _logger.Info("Not registered for feature {0}", feature);
! LicenseFile.RemoveRegCheck(feature);
! }
!
! }
! catch (Exception e)
! {
! _logger.ErrorException("Error checking registration status of {0}", e, feature);
! }
! }
!
! var record = new MBRegistrationRecord
{
! IsRegistered = reg.registered,
! ExpirationDate = reg.expDate,
RegChecked = true,
! RegError = !success
};
-
- record.TrialVersion = IsInTrial(reg.expDate, record.RegChecked, record.IsRegistered);
- record.IsValid = !record.RegChecked || record.IsRegistered || record.TrialVersion;
-
- return record;
}
private bool IsInTrial(DateTime expirationDate, bool regChecked, bool isRegistered)
--- 245,258 ----
string mb2Equivalent = null,
string version = null)
{
! return new MBRegistrationRecord
{
! IsRegistered = true,
RegChecked = true,
! TrialVersion = false,
! IsValid = true,
! RegError = false
};
}
private bool IsInTrial(DateTime expirationDate, bool regChecked, bool isRegistered)
|