protected virtual async Task <List <ModuleGroupDto> > GetModuleGroupList(ModuleLibrarySourceDto source) { var item = await _cache.GetOrAddAsync(source.Name, async() => new ModuleGroupsCacheItem { ModuleGroupList = await RequestModuleGroupListFromSourceAsync(source) }, () => new DistributedCacheEntryOptions { AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(CacheExpirationMinutes) }); return(item.ModuleGroupList); }
protected virtual async Task <List <ModuleGroupDto> > RequestModuleGroupListFromSourceAsync(ModuleLibrarySourceDto source) { var client = _httpClientFactory.CreateClient(); var str = await client.GetStringAsync(source.IndexUrl); return(_jsonSerializer.Deserialize <ModuleLibraryIndexDto>(str).Groups); }