private static ECMSSettings LoadAppSettings(DirectoryInfo dirInfo_) { ECMSSettings setting = new ECMSSettings(); try { using (DataSet ds = new DataSet("Configuration")) { ds.ReadXml(dirInfo_.FullName + "\\site.config"); setting.CDNPath = Convert.ToString(ds.Tables["configuration"].Rows[0]["CDNPath"]) + dirInfo_.Name; setting.AppBasePath = AppDomain.CurrentDomain.BaseDirectory; setting.HostAliases = Convert.ToString(ds.Tables["configuration"].Rows[0]["HttpAliases"]); setting.PortalHostName = Convert.ToString(ds.Tables["configuration"].Rows[0]["PortalHostName"]); setting.XmlSitemapRefreshFrequency = Convert.ToInt32(ds.Tables["configuration"].Rows[0]["XmlSitemapRefreshFrequency"]); setting.SiteId = Convert.ToInt32(dirInfo_.Name); setting.InitiateXMLSiteMapGenerator(); setting.LoadDomainData(); } } catch (Exception ex) { LogEventInfo info = new LogEventInfo(LogLevel.Error, ECMSSettings.DEFAULT_LOGGER, string.Format("Error while reading config file at : {0}", dirInfo_.FullName) + "\r\n" + ex.ToString()); DependencyManager.Logger.Log(info); } return(setting); }
/// <summary> /// Thsi method will write xmlsitemap as per standards define here : http://sitemaps.org/protocol.php /// </summary> /// <param name="websiteRoot_"></param> /// <param name="filePath_"></param> public void GenerateSitemapXml(object stateInfo_) { ECMSSettings settings = stateInfo_ as ECMSSettings; try { XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); XNamespace xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9"; XNamespace schemaLocation = XNamespace.Get("http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"); XElement root = new XElement(xmlns + "urlset", new XAttribute(XNamespace.Xmlns + "xsi", xsi), new XAttribute(xsi + "schemaLocation", schemaLocation)); var siteMapIndexRoot = new XElement(xmlns + "sitemapindex", new XAttribute(XNamespace.Xmlns + "xsi", xsi), new XAttribute(xsi + "schemaLocation", schemaLocation)); var validUrls = DependencyManager.URLRepository.GetAll(settings.SiteId, false); int urlCounter = 1; foreach (var validUrl in validUrls) { root.Add( new XElement(xmlns + "url", new XElement(xmlns + "loc", new XCData(settings.PortalHostName + validUrl.FriendlyUrl.Trim().ToLower().Replace(' ', '-'))), new XElement(xmlns + "changefreq", validUrl.ChangeFrequency), new XElement(xmlns + "priority", validUrl.SitemapPriority), new XElement(xmlns + "lastmod", validUrl.LastModified.ToString("yyyy-MM-dd")) )); urlCounter++; if (urlCounter % 45000 == 0) { WriteSitemapFile(AppBasePath + "\\" + settings.SiteId + "\\sitemap" + (urlCounter / 45000) + ".xml.gz", root.ToString(), true); CreateSitemapIndexDoc(siteMapIndexRoot, "/xmlsitemap/" + (urlCounter / 45000)); root = new XElement(xmlns + "urlset", new XAttribute(XNamespace.Xmlns + "xsi", xsi), new XAttribute(xsi + "schemaLocation", schemaLocation)); } } if (urlCounter > 0) { CreateSitemapIndexDoc(siteMapIndexRoot, "http://" + settings.PortalHostName + "/xmlsitemap/" + (urlCounter / 45000)); WriteSitemapFile(AppBasePath + "\\static\\" + settings.SiteId + "\\sitemap-" + (urlCounter / 45000) + ".xml.gz", root.ToString(), true); WriteSitemapFile(AppBasePath + "\\static\\" + settings.SiteId + "\\sitemapindex.xml", siteMapIndexRoot.ToString(), false); } } catch (Exception ex) { LogEventInfo info = new LogEventInfo(LogLevel.Error, ECMSSettings.DEFAULT_LOGGER, ex.ToString()); DependencyManager.Logger.Log(info); } }
private static ECMSSettings LoadAppSettings(DirectoryInfo dirInfo_) { ECMSSettings setting = new ECMSSettings(); try { using (DataSet ds = new DataSet("Configuration")) { ds.ReadXml(dirInfo_.FullName + "\\site.config"); setting.CDNPath = Convert.ToString(ds.Tables["configuration"].Rows[0]["CDNPath"]) + dirInfo_.Name; setting.AppBasePath = AppDomain.CurrentDomain.BaseDirectory; setting.HostAliases = Convert.ToString(ds.Tables["configuration"].Rows[0]["HttpAliases"]); setting.PortalHostName = Convert.ToString(ds.Tables["configuration"].Rows[0]["PortalHostName"]); setting.XmlSitemapRefreshFrequency = Convert.ToInt32(ds.Tables["configuration"].Rows[0]["XmlSitemapRefreshFrequency"]); setting.SiteId = Convert.ToInt32(dirInfo_.Name); setting.InitiateXMLSiteMapGenerator(); setting.LoadDomainData(); } } catch (Exception ex) { LogEventInfo info = new LogEventInfo(LogLevel.Error, ECMSSettings.DEFAULT_LOGGER, string.Format("Error while reading config file at : {0}", dirInfo_.FullName) + "\r\n" + ex.ToString()); DependencyManager.Logger.Log(info); } return setting; }