private IEnumerable <string> GetCacheDependencies(QueryBase query, IEnumerable entities) { CacheParameters cacheParameters = Owner.GetCacheParameters(); var dependencies = new List <string>(); // get the global dependencies foreach (CacheKeyDependency ckd in cacheParameters.Dependencies) { dependencies.Add(ckd.GetCacheKey(Context, Owner, query)); } // get the item dependencies foreach (Entity entity in entities) { dependencies.Add("xrm:dependency:entity:{0}:id={1}".FormatWith(entity.LogicalName, entity.Id)); foreach (CacheKeyDependency ckd in cacheParameters.ItemDependencies) { dependencies.Add(ckd.GetCacheKey(Context, Owner, entity)); } } // add other dependencies var dependencyCalculator = new CacheDependencyCalculator("xrm:dependency"); dependencies = dependencies.Concat(dependencyCalculator.GetDependenciesForObject(query)).Distinct().ToList(); return(dependencies); }
private IEnumerable <string> GetCacheDependencies(Fetch fetch, IEnumerable entities, bool isSingle) { var dependencyCalculator = new CacheDependencyCalculator("xrm:dependency"); var dependencies = dependencyCalculator.GetDependenciesForObject(fetch, isSingle).Concat(dependencyCalculator.GetDependenciesForObject(entities, isSingle)).Distinct(); return(dependencies); }