/// <summary> /// Harvest a web virtual directory. /// </summary> /// <param name="webVirtualDirEntry">The web virtual directory directory entry.</param> /// <param name="webSite">The parent web site.</param> private void HarvestWebVirtualDir(DirectoryEntry webVirtualDirEntry, IIs.WebSite webSite) { IIs.WebVirtualDir webVirtualDir = new IIs.WebVirtualDir(); foreach (string propertyName in webVirtualDirEntry.Properties.PropertyNames) { PropertyValueCollection property = webVirtualDirEntry.Properties[propertyName]; PropertyValueCollection parentProperty = webVirtualDirEntry.Parent.Properties[propertyName]; if (null == parentProperty.Value || parentProperty.Value.ToString() != property.Value.ToString()) { switch (propertyName) { case "Path": webVirtualDir.Directory = (string)property.Value; break; } } } int indexOfRoot = webVirtualDirEntry.Path.IndexOf("ROOT/", StringComparison.OrdinalIgnoreCase); webVirtualDir.Alias = webVirtualDirEntry.Path.Substring(indexOfRoot + 5); IIs.WebDirProperties webDirProps = this.HarvestWebDirProperties(webVirtualDirEntry); if (webDirProps != null) { webVirtualDir.AddChild(webDirProps); } foreach (DirectoryEntry childEntry in webVirtualDirEntry.Children) { switch (childEntry.SchemaClassName) { case "IIsWebDirectory": this.HarvestWebDirectory(childEntry, webSite); break; case "IIsWebVirtualDir": this.HarvestWebVirtualDir(childEntry, webSite); break; } } webSite.AddChild(webVirtualDir); }
/// <summary> /// Harvest a web directory. /// </summary> /// <param name="webDirectoryEntry">The web directory directory entry.</param> /// <param name="webSite">The parent web site.</param> private void HarvestWebDirectory(DirectoryEntry webDirectoryEntry, IIs.WebSite webSite) { foreach (DirectoryEntry childEntry in webDirectoryEntry.Children) { switch (childEntry.SchemaClassName) { case "IIsWebDirectory": this.HarvestWebDirectory(childEntry, webSite); break; case "IIsWebVirtualDir": this.HarvestWebVirtualDir(childEntry, webSite); break; } } IIs.WebDirProperties webDirProperties = this.HarvestWebDirProperties(webDirectoryEntry); if (null != webDirProperties) { IIs.WebDir webDir = new IIs.WebDir(); int indexOfRoot = webDirectoryEntry.Path.IndexOf("ROOT/", StringComparison.OrdinalIgnoreCase); webDir.Path = webDirectoryEntry.Path.Substring(indexOfRoot + 5); webDir.AddChild(webDirProperties); webSite.AddChild(webDir); } }