public async Task <List <Work> > Works() { var webDocument = await _client.GetWorks(); _cache.GetOrCreate("WorksCache", entry => { entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(15); entry.SetPriority(CacheItemPriority.High); return(WorkAdapter.ExtractWorks(webDocument)); }); return(WorkAdapter.ExtractWorks(webDocument)); }
public async Task <List <Work> > Search(SearchRequest request) { var searchPattern = request.Query is null ? "" : Regex.Replace(request.Query, @"\s+|\,+", "+"); searchPattern += string.IsNullOrEmpty(request.Page) ? "&page=1" : $"&page={request.Page}"; var webDocument = await _client.GetWorks(searchPattern); var works = WorkAdapter.ExtractWorks(webDocument); _cache.GetOrCreate("WorksCache", entry => { entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(15); entry.SetPriority(CacheItemPriority.High); return(works); }); return(works); }