private static void TimerElapsed(object sender, ElapsedEventArgs e) { if (_license.ExpiredDate != null && _license.ExpiredDate.Date < DateTime.Now.Date) { _timer.Dispose(); _timer = new Timer(5000); _timer.Elapsed += (s, er) => Environment.Exit(0); _timer.Enabled = true; OnLicenseExpired?.Invoke("License period expired"); } if (_license.ExpiredSessionSeconds > 0) { var dateDifference = (DateTime.Now - _startWork).TotalSeconds; if (dateDifference > _license.ExpiredSessionSeconds) { _timer.Dispose(); _timer = new Timer(5000); _timer.Elapsed += (s, er) => Environment.Exit(0); _timer.Enabled = true; OnLicenseExpired?.Invoke("Maximum work time achieved"); } } }
public static void Start() { var licenseFilename = @".\license.lp"; if (File.Exists(licenseFilename)) { _startWork = DateTime.Now; _license = GetLicense(licenseFilename); _timer = new Timer(1000); _timer.Elapsed += TimerElapsed; _timer.Enabled = true; } else { OnLicenseExpired?.Invoke("Can't find license file"); Environment.Exit(0); } }