public async Task <SearchInfo> AddOrUpdate(string key, Func <Task <string> > valueFactory) { if (string.IsNullOrWhiteSpace(key)) { throw new ArgumentException("message", nameof(key)); } if (valueFactory is null) { throw new ArgumentNullException(nameof(valueFactory)); } var searchInfo = Get(key); string jsonResult; if (searchInfo is null) { jsonResult = await valueFactory(); searchInfo = new SearchInfo(key, jsonResult); if (!string.IsNullOrWhiteSpace(jsonResult)) { Add(searchInfo); } } return(searchInfo); }
public void Remove(SearchInfo searchResult) { if (searchResult is null) { throw new ArgumentNullException(nameof(searchResult)); } _cache.Remove(searchResult); }
public void Add(SearchInfo searchResult) { if (searchResult is null) { throw new ArgumentNullException(nameof(searchResult)); } _cache.AddOrUpdate(searchResult, SearchInfo.DefaultComparer); }