Beispiel #1
0
        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);
        }