public ImageCache( IBlobCacheFactory cacheFactory, IEnvironment environment, Lazy <IImageDownloader> imageDownloader) : this(CreateCache(cacheFactory, environment), imageDownloader) { }
static IObservable <IBlobCache> CreateCache(IBlobCacheFactory cacheFactory, IEnvironment environment) { return(Observable.Defer(() => { var imageCacheFilePath = Path.Combine(environment.GetLocalGitHubApplicationDataPath(), ImageCacheFileName); var blobCache = cacheFactory.CreateBlobCache(imageCacheFilePath); return VacuumIfNecessary(blobCache).ContinueAfter(() => Observable.Return(blobCache)); }) .PublishLast() .RefCount()); }