protected CacheItemPolicy CreatePolicy(OpenSearchResponseCacheItem item, OpenSearchRequest request)
{
CacheItemPolicy policy = new CacheItemPolicy();
policy.AbsoluteExpiration = DateTime.UtcNow.Add(item.OpenSearchResponse.Validity);
log.DebugFormat("OpenSearch Cache [prepare to store] AbsoluteExpiration {1} {0}", item.OpenSearchUrl, policy.AbsoluteExpiration);
policy.RemovedCallback = new CacheEntryRemovedCallback(this.EntryRemovedCallBack);
if (item.OpenSearchResponse.Entity is IMonitoredOpenSearchable) {
IMonitoredOpenSearchable mos = (IMonitoredOpenSearchable)item.OpenSearchResponse.Entity;
var monitor = new OpenSearchableChangeMonitor(mos, request);
log.DebugFormat("OpenSearch Cache [prepare to store] Monitor {1} {0} ", item.OpenSearchUrl, monitor.UniqueId);
policy.ChangeMonitors.Add(monitor);
}
return policy;
}