/// <summary> /// Returns true if all providers have a Completed installation status /// </summary> /// <param name="appContext"> </param> /// <returns> </returns> public static bool AllProvidersInstalled(this IRebelApplicationContext appContext) { return(appContext.FrameworkContext.ApplicationCache.GetOrCreate( "all-providers-installed", () => { var isInstalled = appContext.GetInstallStatus().All(status => status.StatusType == InstallStatusType.Completed); // If not all providers are installed, basically don't cache it if (isInstalled) { return new HttpRuntimeCacheParameters <bool>(true) { CacheItemPriority = CacheItemPriority.NotRemovable, AbsoluteExpiration = DateTime.MaxValue }; } else { return new HttpRuntimeCacheParameters <bool>(false) { SlidingExpiration = TimeSpan.FromMilliseconds(1) }; } })); }
public static bool AnyProvidersHaveStatus(this IRebelApplicationContext appContext, InstallStatusType status) { return(appContext.GetInstallStatus().Any(s => s.StatusType == status)); }