Digest.Model.WebReferenceUrl[] getWebReferenceUrls(DirectoryInfo folder, string currentPath) { string relPath = Path.Combine(currentPath, folder.Name); string url = string.Empty; List <Digest.Model.WebReferenceUrl> webReferenceUrls = new List <Digest.Model.WebReferenceUrl>(); FileInfo[] fileInfo = folder.GetFiles("*.discomap"); if (fileInfo != null && fileInfo.Length > 0) { System.Xml.XPath.XPathDocument xDoc = new System.Xml.XPath.XPathDocument(fileInfo[0].FullName); System.Xml.XPath.XPathNavigator xNav = xDoc.CreateNavigator(); string xpathExpression = @"DiscoveryClientResultsFile/Results/DiscoveryClientResult[@referenceType='System.Web.Services.Discovery.ContractReference']/@url"; System.Xml.XPath.XPathNodeIterator xIter = xNav.Select(xpathExpression); if (xIter.MoveNext()) { url = xIter.Current.TypedValue.ToString(); } } if (!string.IsNullOrEmpty(url)) { Digest.Model.WebReferenceUrl newWebReferenceUrl = new Digest.Model.WebReferenceUrl(); newWebReferenceUrl.RelPath = relPath; newWebReferenceUrl.UpdateFromURL = url; webReferenceUrls.Add(newWebReferenceUrl); } foreach (DirectoryInfo dirInfo in folder.GetDirectories()) { webReferenceUrls.AddRange(getWebReferenceUrls(dirInfo, relPath)); } return(webReferenceUrls.ToArray()); }
Digest.Model.WebReferenceUrl[] getWebReferenceUrls(DirectoryInfo folder, string currentPath) { string relPath = Path.Combine(currentPath, folder.Name); string url = string.Empty; List<Digest.Model.WebReferenceUrl> webReferenceUrls = new List<Digest.Model.WebReferenceUrl>(); FileInfo[] fileInfo = folder.GetFiles("*.discomap"); if (fileInfo != null && fileInfo.Length > 0) { System.Xml.XPath.XPathDocument xDoc = new System.Xml.XPath.XPathDocument(fileInfo[0].FullName); System.Xml.XPath.XPathNavigator xNav = xDoc.CreateNavigator(); string xpathExpression = @"DiscoveryClientResultsFile/Results/DiscoveryClientResult[@referenceType='System.Web.Services.Discovery.ContractReference']/@url"; System.Xml.XPath.XPathNodeIterator xIter = xNav.Select(xpathExpression); if (xIter.MoveNext()) { url = xIter.Current.TypedValue.ToString(); } } if (!string.IsNullOrEmpty(url)) { Digest.Model.WebReferenceUrl newWebReferenceUrl = new Digest.Model.WebReferenceUrl(); newWebReferenceUrl.RelPath = relPath; newWebReferenceUrl.UpdateFromURL = url; webReferenceUrls.Add(newWebReferenceUrl); } foreach (DirectoryInfo dirInfo in folder.GetDirectories()) { webReferenceUrls.AddRange(getWebReferenceUrls(dirInfo, relPath)); } return webReferenceUrls.ToArray(); }