private bool FixLease(Lease lease, DateTime time, bool fixEndTime = true) { PostSharp.Sdk.Extensibility.Licensing.License parsedLicense = ParsedLicenseManager.GetParsedLicense(lease.License.LicenseKey); if (lease.EndTime <= lease.StartTime) { throw new Exception("Assertion failed."); } if (fixEndTime) { if (parsedLicense.ValidTo.HasValue && parsedLicense.ValidTo < lease.EndTime) { lease.EndTime = parsedLicense.ValidTo.Value; } if (lease.Grace) { DateTime graceEnd = lease.License.GraceStartTime.Value.AddDays(parsedLicense.GetGraceDaysOrDefault()); if (lease.EndTime > graceEnd) { lease.EndTime = graceEnd; } } if (lease.EndTime <= time) { return(false); } if (lease.EndTime <= lease.StartTime) { throw new Exception("Assertion failed."); } } lease.HMAC = this.GetSignature(lease); return(true); }