private ResolverUsageDefinitionList CreateCacheUsageList()
        {
            ResolverUsageDefinitionList resolverUsageDefinitionList = new ResolverUsageDefinitionList();

            foreach (CacheState state in _cacheStates)
            {
                if (state.IsActive)
                {
                    foreach (ResolverState resolverState in state.ResolverStates)
                    {
                        if (resolverState.IsActive)
                        {
                            List <string> activeConnectionTypes = new List <string>();
                            string[]      connectionTypes       = resolverState.Resolver.GetConnectionTypes();

                            foreach (string connectionType in connectionTypes)
                            {
                                if (resolverState.ActiveConnectionTypes.Contains(connectionType))
                                {
                                    activeConnectionTypes.Add(connectionType);
                                }
                            }

                            resolverUsageDefinitionList.Add(state.Cache.GetType(), resolverState.Resolver.GetType(), activeConnectionTypes);
                        }
                    }
                }
            }

            return(resolverUsageDefinitionList);
        }
        private void LoadDependencyCache(bool update = true)
        {
            _nodeDependencyLookupContext.Reset();

            ResolverUsageDefinitionList resolverUsageDefinitionList = CreateCacheUsageList();

            ProgressBase progress = new ProgressBase(null);

            progress.SetProgressFunction((title, info, value) => EditorUtility.DisplayProgressBar(title, info, value));

            NodeDependencyLookupUtility.LoadDependencyLookupForCaches(_nodeDependencyLookupContext, resolverUsageDefinitionList, progress, true, update);

            SetNodeHandlerContext();
        }