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); } }