internal static LicenseState ProjectTypeLicense(ProjectLicenseGroup group, IServiceProvider services) { ILicenseService service = services.GetService <ILicenseService>(); switch (group) { case ProjectLicenseGroup.WpfSilverlight: { IList <Guid> guids = service.SkusFromFeature(ExpressionFeatureMapper.WpfFeature); IList <Guid> guids1 = service.SkusFromFeature(ExpressionFeatureMapper.SilverlightFeature); return(LicensingHelper.DetermineLicenseState(service, LicensingHelper.CombineLists(guids, guids1))); } case ProjectLicenseGroup.SilverlightMobile: { return(LicensingHelper.DetermineLicenseState(service, service.SkusFromFeature(ExpressionFeatureMapper.MobileFeature))); } case ProjectLicenseGroup.SketchFlow: { IList <Guid> list = service.SkusFromFeature(ExpressionFeatureMapper.HobbledSketchFlowFeature); list = list.Union <Guid>(service.SkusFromFeature(ExpressionFeatureMapper.SketchFlowFeature)).ToList <Guid>(); return(LicensingHelper.DetermineLicenseState(service, list)); } } return(LicenseState.FullLicense()); }
private static LicenseState DetermineLicenseState(ILicenseService licenseService, IList <Guid> skus) { LicenseState licenseState; Guid guid = licenseService.MostPermissiveLicenseSku(skus); bool flag = licenseService.FeaturesFromSku(guid).Contains(ExpressionFeatureMapper.ActivationLicense); if (licenseService.IsLicensed(guid)) { licenseState = LicenseState.FullLicense(); } else if (!licenseService.IsInGrace(guid)) { bool unlicensedReason = licenseService.GetUnlicensedReason(guid) == UnlicensedReason.GraceTimeExpired; bool flag1 = licenseService.HasKey(guid); licenseState = LicenseState.Expired((!flag || !unlicensedReason ? false : flag1)); } else { licenseState = LicenseState.Trial(flag, licenseService.GetRemainingGraceMinutes(guid) / 1440); } return(licenseState); }