Example #1
0
        private void CreateDependencies(CacheDependency dependencies, CacheItemPolicy policy)
        {
            if (dependencies == null)
            {
                return;
            }

            if (dependencies is AggregateCacheDependency aggregateDep)
            {
                foreach (var item in aggregateDep.Dependencies)
                {
                    CreateDependencies(item, policy);
                }
            }
            else if (dependencies is NodeIdDependency nodeIdDep)
            {
                policy.ChangeMonitors.Add(new NodeIdChangeMonitor(nodeIdDep.NodeId));
            }
            else if (dependencies is NodeTypeDependency nodeTypeDep)
            {
                policy.ChangeMonitors.Add(new NodeTypeChangeMonitor(nodeTypeDep.NodeTypeId));
            }
            else if (dependencies is PathDependency pathDep)
            {
                policy.ChangeMonitors.Add(new PathChangeMonitor(pathDep.Path));
            }
            else if (dependencies is PortletDependency portletDep)
            {
                policy.ChangeMonitors.Add(new PortleChangeMonitor(portletDep.PortletId));
            }
            else
            {
                throw new SnNotSupportedException(
                          "Unknown cache dependency is not supported in this version. Type: " +
                          dependencies.GetType().FullName);
            }
        }