/// <summary> /// Generates a xml sitemap about pages on site /// </summary> /// <param name="sitemapData">SitemapData object containing configuration info for sitemap</param> /// <param name="persistData">True if the sitemap data should be persisted in DDS</param> /// <param name="entryCount">out count of site entries in generated sitemap</param> /// <returns>True if sitemap generation successful, false if error encountered</returns> public virtual bool Generate(SitemapData sitemapData, bool persistData, out int entryCount) { try { this.SitemapData = sitemapData; var sitemapSiteUri = new Uri(this.SitemapData.SiteUrl); this.SiteSettings = GetSiteDefinitionFromSiteUri(sitemapSiteUri); this.HostLanguageBranch = GetHostLanguageBranch(); XElement sitemap = CreateSitemapXmlContents(out entryCount); var doc = new XDocument(new XDeclaration("1.0", "utf-8", null)); doc.Add(sitemap); using (var ms = new MemoryStream()) { var xtw = new XmlTextWriter(ms, Encoding.UTF8); doc.Save(xtw); xtw.Flush(); sitemapData.Data = ms.ToArray(); } if (persistData && !StopGeneration) { this.SitemapRepository.Save(sitemapData); } return(true); } catch (Exception e) { Log.Error("Error on generating xml sitemap" + Environment.NewLine + e); entryCount = 0; return(false); } }
/// <summary> /// Generates a xml sitemap about pages on site /// </summary> /// <param name="sitemapData">SitemapData object containing configuration info for sitemap</param> /// <param name="entryCount">out count of site entries in generated sitemap</param> /// <returns>True if sitemap generation successful, false if error encountered</returns> public bool Generate(SitemapData sitemapData, out int entryCount) { try { XElement sitemap = SitemapContentHelper.CreateSitemapXmlContents(sitemapData, out entryCount); var doc = new XDocument(new XDeclaration("1.0", "utf-8", null)); doc.Add(sitemap); using (var ms = new MemoryStream()) { var xtw = new XmlTextWriter(ms, Encoding.UTF8); doc.Save(xtw); xtw.Flush(); sitemapData.Data = ms.ToArray(); } sitemapRepository.Save(sitemapData); return(true); } catch (Exception e) { Log.Error("Error on generating xml sitemap" + Environment.NewLine + e); entryCount = 0; return(false); } }
private static void AddDummySitemapData(ISitemapRepository repo) { var sitemapData = new SitemapData(); sitemapData.Data = new byte[] { 0, 1, 2, 3, 4 }; repo.GetSitemapData(Arg.Any <string>()).Returns(sitemapData); }
private static IList <XElement> GenerateXmlElements(IEnumerable <PageReference> pages, ISet <string> urlSet, SitemapData sitemapData, ISitemapXmlGenerator sitemapGenerator) { IList <XElement> sitemapXmlElements = new List <XElement>(); var baseUrl = string.IsNullOrEmpty(sitemapData.SiteUrl) ? Settings.Instance.SiteUrl.ToString() : sitemapData.SiteUrl; foreach (PageReference pageReference in pages) { var languagePages = DataFactory.Instance.GetLanguageBranches(pageReference); foreach (var page in languagePages) { if (urlSet.Count >= MaxSitemapEntryCount) { sitemapData.ExceedsMaximumEntryCount = true; return(sitemapXmlElements); } AddFilteredPageElement(page, baseUrl, urlSet, sitemapData, sitemapGenerator, sitemapXmlElements); } } return(sitemapXmlElements); }
private static void AddFilteredPageElement(PageData page, string baseUrl, ISet <string> urlSet, SitemapData sitemapData, ISitemapXmlGenerator sitemapGenerator, IList <XElement> xmlElements) { // filter the page if (PageFilter.FilterPage(page)) { return; } // get page url string contentUrl = UrlHelper.GetContentUrl(page); string fullPageUrl = UrlHelper.CombineUrl(baseUrl, contentUrl); // filter url if (urlSet.Contains(fullPageUrl) || UrlFilter.IsUrlFiltered(contentUrl, sitemapData)) { return; } // get xml element var pageElement = sitemapGenerator.GenerateSiteElement(page, fullPageUrl); xmlElements.Add(pageElement); urlSet.Add(fullPageUrl); }
public virtual ISitemapXmlGenerator GetSitemapXmlGenerator(SitemapData sitemapData) { ISitemapXmlGenerator xmlGenerator; switch (sitemapData.SitemapFormat) { case SitemapFormat.Mobile: xmlGenerator = ServiceLocator.Current.GetInstance <IMobileSitemapXmlGenerator>(); break; case SitemapFormat.Commerce: xmlGenerator = ServiceLocator.Current.GetInstance <ICommerceSitemapXmlGenerator>(); break; case SitemapFormat.StandardAndCommerce: xmlGenerator = ServiceLocator.Current.GetInstance <ICommerceAndStandardSitemapXmlGenerator>(); break; default: xmlGenerator = ServiceLocator.Current.GetInstance <IStandardSitemapXmlGenerator>(); break; } xmlGenerator.IsDebugMode = sitemapData.IncludeDebugInfo; return(xmlGenerator); }
public void Save(SitemapData sitemapData) { if (sitemapData == null) { return; } SitemapStore.Save(sitemapData); }
private static SitemapData CreateDefaultConfig() { var blankConfig = new SitemapData { Host = "sitemap.xml", IncludeDebugInfo = false, SitemapFormat = SitemapFormat.Standard }; return(blankConfig); }
public static bool IsUrlFiltered(string url, SitemapData sitemapConfig) { IList <string> whiteList = sitemapConfig.PathsToInclude; IList <string> blackList = sitemapConfig.PathsToAvoid; if (IsNotInWhiteList(url, whiteList) || IsInBlackList(url, blackList)) { return(true); } return(false); }
/// <summary> /// Creates xml content for a given sitemap configuration entity /// </summary> /// <param name="sitemapData">sitemap configuration object</param> /// <param name="entryCount">out: count of sitemap entries in the returned element</param> /// <returns>XElement that contains sitemap entries according to the configuration</returns> public static XElement CreateSitemapXmlContents(SitemapData sitemapData, out int entryCount) { ISitemapXmlGenerator sitemapGenerator = GetSitemapXmlGenerator(sitemapData); var sitemapElement = sitemapGenerator.GenerateRootElement(); ISet <string> urlSet = new HashSet <string>(); sitemapElement.Add(GetSitemapXmlElements(sitemapData, sitemapGenerator, urlSet)); entryCount = urlSet.Count; return(sitemapElement); }
private void GenerateSitemaps(SitemapData sitemapConfig, StringBuilder builder) { int entryCount; var success = sitemapService.Generate(sitemapConfig, out entryCount); if (success) { builder.Append(string.Format("<br/>\"{0}\": {1} entries", sitemapConfig.Host, entryCount)); } else { builder.Append("<br/>Error creating sitemap for \"" + sitemapConfig.Host + "\""); } }
private void GenerateSitemaps(SitemapData sitemapConfig, StringBuilder message) { int entryCount; bool success = _sitemapXmlGeneratorFactory.GetSitemapXmlGenerator(sitemapConfig).Generate(sitemapConfig, out entryCount); if (success) { message.Append(string.Format("<br/>\"{0}{1}\": {2} entries", sitemapConfig.SiteUrl, sitemapConfig.Host, entryCount)); } else { message.Append("<br/>Error creating sitemap for \"" + sitemapConfig.Host + "\""); } }
/// <summary> /// Returns host with language. /// For example en/sitemap.xml /// </summary> /// <param name="sitemapData"></param> /// <returns></returns> public string GetHostWithLanguage(SitemapData sitemapData) { if (string.IsNullOrWhiteSpace(sitemapData.Language)) { return(sitemapData.Host.ToLowerInvariant()); } var languageBranch = _languageBranchRepository.Load(sitemapData.Language); if (languageBranch != null) { return(string.Format("{0}/{1}", languageBranch.CurrentUrlSegment, sitemapData.Host).ToLowerInvariant()); } return(sitemapData.Host.ToLowerInvariant()); }
public ActionResult Index() { SitemapData sitemapData = sitemapRepository.GetSitemapData(Request.Url.ToString()); if (sitemapData == null || sitemapData.Data == null) { Log.Error("Xml sitemap data not found!"); return(new HttpNotFoundResult()); } Response.Filter = new GZipStream(Response.Filter, CompressionMode.Compress); Response.AppendHeader("Content-Encoding", "gzip"); return(new FileContentResult(sitemapData.Data, "text/xml")); }
private bool GetSitemapData(SitemapData sitemapData) { int entryCount; string userAgent = Request.ServerVariables["USER_AGENT"]; var isGoogleBot = userAgent != null && userAgent.IndexOf("Googlebot", StringComparison.InvariantCultureIgnoreCase) > -1; string googleBotCacheKey = isGoogleBot ? "Google-" : string.Empty; if (SitemapSettings.Instance.EnableRealtimeSitemap) { string cacheKey = googleBotCacheKey + _sitemapRepository.GetSitemapUrl(sitemapData); var sitemapDataData = CacheManager.Get(cacheKey) as byte[]; if (sitemapDataData != null) { sitemapData.Data = sitemapDataData; return(true); } if (_sitemapXmlGeneratorFactory.GetSitemapXmlGenerator(sitemapData).Generate(sitemapData, false, out entryCount)) { if (SitemapSettings.Instance.EnableRealtimeCaching) { CacheEvictionPolicy cachePolicy; if (isGoogleBot) { cachePolicy = new CacheEvictionPolicy(null, new[] { DataFactoryCache.VersionKey }, null, Cache.NoSlidingExpiration, CacheTimeoutType.Sliding); } else { cachePolicy = null; } CacheManager.Insert(cacheKey, sitemapData.Data, cachePolicy); } return(true); } return(false); } return(_sitemapXmlGeneratorFactory.GetSitemapXmlGenerator(sitemapData).Generate(sitemapData, !SitemapSettings.Instance.EnableRealtimeSitemap, out entryCount)); }
private void GenerateSitemaps(SitemapData sitemapConfig, StringBuilder message) { int entryCount; _currentGenerator = _sitemapXmlGeneratorFactory.GetSitemapXmlGenerator(sitemapConfig); bool success = _currentGenerator.Generate(sitemapConfig, true, out entryCount); if (success) { message.Append(string.Format("<br/>\"{0}{1}\": {2} entries", sitemapConfig.SiteUrl, _sitemapRepository.GetHostWithLanguage(sitemapConfig), entryCount)); } else { message.Append("<br/>Error creating sitemap for \"" + _sitemapRepository.GetHostWithLanguage(sitemapConfig) + "\""); } }
private static IList <XElement> GetSitemapXmlElements(SitemapData sitemapData, ISitemapXmlGenerator sitemapGenerator, ISet <string> urlSet) { var rootPage = sitemapData.RootPageId == 0 ? PageReference.RootPage : new PageReference(sitemapData.RootPageId); var descendants = DataFactory.Instance.GetDescendents(rootPage); if (rootPage != PageReference.RootPage) { descendants.Add(rootPage); } return(GenerateXmlElements(descendants, urlSet, sitemapData, sitemapGenerator)); }
private void InsertSitemapData(ListViewItem insertItem) { var sitemapData = new SitemapData { SiteUrl = GetSelectedSiteUrl(insertItem), Host = ((TextBox)insertItem.FindControl("txtHost")).Text + SitemapHostPostfix, PathsToAvoid = GetDirectoryList(insertItem, "txtDirectoriesToAvoid"), PathsToInclude = GetDirectoryList(insertItem, "txtDirectoriesToInclude"), IncludeDebugInfo = ((CheckBox)insertItem.FindControl("cbIncludeDebugInfo")).Checked, SitemapFormat = IsMobileSitemapFormatChecked(insertItem) ? SitemapFormat.Mobile : SitemapFormat.Standard, RootPageId = TryParse(((TextBox)insertItem.FindControl("txtRootPageId")).Text) }; sitemapRepository.Save(sitemapData); CloseInsert(); BindList(); }
public void Expect_Sitemap_Without_Language_In_URL() { var sitemapData = new SitemapData { Host = "Sitemap.xml", SiteUrl = "https://xyz.com/" }; var expectedSiteMapUrl = "sitemap.xml"; var siteDefinitionResolver = new Mock <ISiteDefinitionResolver>(); var sitemapLoader = new Mock <ISitemapLoader>(); var siteMapService = new SitemapRepository(_languageBranchRepository.Object, siteDefinitionResolver.Object, sitemapLoader.Object); var sitemapUrl = siteMapService.GetHostWithLanguage(sitemapData); Assert.True(sitemapUrl != null); Assert.Equal(sitemapUrl, expectedSiteMapUrl); }
private static ISitemapXmlGenerator GetSitemapXmlGenerator(SitemapData sitemapData) { ISitemapXmlGenerator xmlGenerator; switch (sitemapData.SitemapFormat) { case SitemapFormat.Mobile: xmlGenerator = new MobileSitemapXmlGenerator(); break; default: xmlGenerator = new StandardSitemapXmlGenerator(); break; } xmlGenerator.IsDebugMode = sitemapData.IncludeDebugInfo; return(xmlGenerator); }
private void InsertSitemapData(ListViewItem insertItem) { var sitemapData = new SitemapData { SiteUrl = GetSelectedSiteUrl(insertItem), Host = ((TextBox)insertItem.FindControl("txtHost")).Text + SitemapHostPostfix, Language = ((DropDownList)insertItem.FindControl("ddlLanguage")).SelectedValue, EnableLanguageFallback = ((CheckBox)insertItem.FindControl("cbEnableLanguageFallback")).Checked, PathsToAvoid = GetDirectoryList(insertItem, "txtDirectoriesToAvoid"), PathsToInclude = GetDirectoryList(insertItem, "txtDirectoriesToInclude"), IncludeDebugInfo = ((CheckBox)insertItem.FindControl("cbIncludeDebugInfo")).Checked, SitemapFormat = GetSitemapFormat(insertItem), RootPageId = TryParse(((TextBox)insertItem.FindControl("txtRootPageId")).Text) }; SitemapRepository.Service.Save(sitemapData); CloseInsert(); BindList(); }
public void Can_Retrieve_SiteMapData_By_URL_When_SiteMapData_SiteUrl_Is_Null() { var requestUrl = "https://www.domain.com/en/sitemap.xml"; var expectedSitemapData = new SitemapData { Language = "en", Host = "Sitemap.xml", SiteUrl = null }; var hostDefinition = new HostDefinition(); var siteDefinition = new SiteDefinition(); siteDefinition.Hosts = new List <HostDefinition> { new HostDefinition { Name = "www.domain.com" } }; var siteDefinitionResolver = new Mock <ISiteDefinitionResolver>(); siteDefinitionResolver .Setup(x => x.GetByHostname(It.IsAny <string>(), It.IsAny <bool>(), out hostDefinition)) .Returns(siteDefinition); var sitemapDataList = new List <SitemapData> { expectedSitemapData }; var sitemapLoader = new Mock <ISitemapLoader>(); sitemapLoader .Setup(x => x.GetAllSitemapData()) .Returns(sitemapDataList); var siteMapService = new SitemapRepository(_languageBranchRepository.Object, siteDefinitionResolver.Object, sitemapLoader.Object); var siteMapData = siteMapService.GetSitemapData(requestUrl); Assert.Equal(siteMapData, expectedSitemapData); }
public ActionResult Index() { SitemapData sitemapData = _sitemapRepository.GetSitemapData(Request.Url.ToString()); if (sitemapData == null) { Log.Error("Xml sitemap data not found!"); return(new HttpNotFoundResult()); } if (sitemapData.Data == null || (SitemapSettings.Instance.EnableRealtimeSitemap)) { if (!GetSitemapData(sitemapData)) { Log.Error("Xml sitemap data not found!"); return(new HttpNotFoundResult()); } } CompressionHandler.ChooseSuitableCompression(Request.Headers, Response); return(new FileContentResult(sitemapData.Data, "text/xml; charset=utf-8")); }
public async Task <ActionResult> Sitemap() { var builds = await _bModel.SelectBuildsByOrder(); var actions = new Dictionary <string, SitemapPagedAction[]> { { "Pages", new[] { new SitemapPagedAction { UrlParams = new RouteValueDictionary(new { controller = "Front", action = "Index", page = 1 }), Pages = (builds.Count + (FrontController.PAGE_SIZE - 1)) / FrontController.PAGE_SIZE } } }, { "Versions", (from b in builds group b by new BuildVersion { Major = b.MajorVersion, Minor = b.MinorVersion } into bv orderby bv.Key.Major descending, bv.Key.Minor descending select new SitemapPagedAction { Name = $"{InvariantTerms.ProductName} {bv.Key.Major}.{bv.Key.Minor}", UrlParams = new RouteValueDictionary(new { controller = "Front", action = "ViewVersion", major = bv.Key.Major, minor = bv.Key.Minor, page = 1 }), Pages = (bv.Count() + (FrontController.PAGE_SIZE - 1)) / FrontController.PAGE_SIZE }).ToArray() }, { "Labs", (from b in builds where !string.IsNullOrEmpty(b.Lab) group b by b.Lab into bv orderby bv.Key select new SitemapPagedAction { Name = bv.Key, UrlParams = new RouteValueDictionary(new { controller = "Front", action = "ViewLab", lab = bv.Key, page = 1 }), Pages = (bv.Count() + (FrontController.PAGE_SIZE - 1)) / FrontController.PAGE_SIZE }).ToArray() }, { "Years", (from b in builds where b.BuildTime.HasValue group b by b.BuildTime.Value.Year into bv orderby bv.Key descending select new SitemapPagedAction { Name = bv.Key.ToString(), UrlParams = new RouteValueDictionary(new { controller = "Front", action = "ViewYear", year = bv.Key, page = 1 }), Pages = (bv.Count() + (FrontController.PAGE_SIZE - 1)) / FrontController.PAGE_SIZE }).ToArray() }, { "Sources", (from b in builds group b by b.SourceType into bv orderby bv.Key select new SitemapPagedAction { Name = MvcExtensions.GetDisplayTextForEnum(bv.Key), UrlParams = new RouteValueDictionary(new { controller = "Front", action = "ViewSource", source = bv.Key, page = 1 }), Pages = (bv.Count() + (FrontController.PAGE_SIZE - 1)) / FrontController.PAGE_SIZE }).ToArray() } }; var model = new SitemapData { Builds = (from b in builds group b by new { Major = b.MajorVersion, Minor = b.MinorVersion, Build = b.Number, b.Revision } into bg orderby bg.Key.Major descending, bg.Key.Minor descending, bg.Key.Build descending, bg.Key.Revision descending select new SitemapDataBuildGroup { Id = new BuildGroup { Major = bg.Key.Major, Minor = bg.Key.Minor, Build = bg.Key.Build, Revision = bg.Key.Revision }, Builds = (from bgb in bg select new SitemapDataBuild { Id = bgb.Id, Name = bgb.FullBuildString }).ToArray() }).ToArray(), Actions = actions, Labs = (from b in builds group b by b.Lab into lab select lab.Key).ToArray() }; return(View(model)); }
public void Save(SitemapData sitemapData) { sitemapRepository.Save(sitemapData); }
public string GetSitemapUrl(SitemapData sitemapData) { return(string.Format("{0}{1}", sitemapData.SiteUrl, GetHostWithLanguage(sitemapData))); }
public void Save(SitemapData sitemapData) { _sitemapLoader.Save(sitemapData); }
public static void WriteSiteMapDaily() { //Create the XmlDocument. var doc = new XmlDocument(); var xmltype = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"; var sitemapHelper = new SiteMapHelper(); var getDate = DateTime.Now; var listSiteMap = new List<SiteMapEntry>(); var listSiteMapEntry = new List<SiteMapEntry>(); var siteMap = new XDocument(); #region LISTING var listingModel = new SitemapData().GetListings(); if (listingModel.Count > 0) { #region category-listing listSiteMapEntry = new List<SiteMapEntry>(); listSiteMapEntry.Add(new SiteMapEntry { Loc = "http://www.muabannhadat.vn/nha-dat-3490", Lastmod = getDate, Changefreq = "daily", Priority = 0.8m }); foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/" + item.Level2Category.UrlFriendly() + "-" + item.Level2CategoryId, Lastmod = getDate, Changefreq = "daily", Priority = 0.8m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); // Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["category-listing"] + ConfigurationManager.AppSettings["extSitemap"]); // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["category-listing"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion #region category-sub-category-listing listSiteMapEntry = new List<SiteMapEntry>(); foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/" + item.Level2Category.UrlFriendly() + "-" + item.Category.UrlFriendly() + "-" + item.CategoryId, Lastmod = getDate, Changefreq = "daily", Priority = 0.8m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); //Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["category-sub-category-listing"] + ConfigurationManager.AppSettings["extSitemap"]); // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["category-sub-category-listing"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion #region category-city-listing listSiteMapEntry = new List<SiteMapEntry>(); foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/nha-dat-3490/" + item.State.UrlFriendly() + "-s" + item.StateId, Lastmod = getDate, Changefreq = "daily", Priority = 0.8m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/" + item.Level2Category.UrlFriendly() + "-" + item.Level2CategoryId + "/" + item.State.UrlFriendly() + "-s" + item.StateId, Lastmod = getDate, Changefreq = "daily", Priority = 0.8m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); //Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["category-city-listing"] + ConfigurationManager.AppSettings["extSitemap"]); // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["category-city-listing"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion #region subcategory-category-city-listing listSiteMapEntry = new List<SiteMapEntry>(); foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/" + item.Level2Category.UrlFriendly() + "-" + item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.State.UrlFriendly() + "-s" + item.StateId, Lastmod = getDate, Changefreq = "daily", Priority = 0.8m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); //Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["subcategory-category-city-listing"] + ConfigurationManager.AppSettings["extSitemap"]); // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["subcategory-category-city-listing"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion #region category-city-district-listing listSiteMapEntry = new List<SiteMapEntry>(); foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/nha-dat-3490/" + item.State.UrlFriendly() + "-" + item.District.UrlFriendly() + "-d" + item.DistrictId, Lastmod = getDate, Changefreq = "daily", Priority = 0.8m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/" + item.Level2Category.UrlFriendly() + "-" + item.Level2CategoryId + "/" + item.State.UrlFriendly() + "-" + item.District.UrlFriendly() + "-d" + item.DistrictId, Lastmod = getDate, Changefreq = "daily", Priority = 0.8m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); //Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["category-city-district-listing"] + ConfigurationManager.AppSettings["extSitemap"]); // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["category-city-district-listing"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion #region subcategory-category-city-district-listing listSiteMapEntry = new List<SiteMapEntry>(); foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/" + item.Level2Category.UrlFriendly() + "-" + item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.State.UrlFriendly() + "-" + item.District.UrlFriendly() + "-d" + item.DistrictId, Lastmod = getDate, Changefreq = "daily", Priority = 0.8m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); //Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["subcategory-category-city-district-listing"] + ConfigurationManager.AppSettings["extSitemap"]); // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["subcategory-category-city-district-listing"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion #region listing //var size = Convert.ToInt32(ConfigurationManager.AppSettings["sizeSitemap"]); //var countListingModel = listingModel.Count; //var totalPage = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(countListingModel) / size)); //for (var i = 1; i <= totalPage; i++) //{ // // Save to sitemap // listSiteMap.Add(new SiteMapEntry // { // Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["listing"] + i + ConfigurationManager.AppSettings["extSitemap"], // Lastmod = getDate // }); //} #endregion #region listing follow sub-category listSiteMapEntry = new List<SiteMapEntry>(); foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/sitemap/" + item.Level2Category.UrlFriendly() + "-" + item.Category.UrlFriendly() + "-" + item.CategoryId }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } listSiteMap.AddRange(listSiteMapEntry.Select(siteMapEntry => new SiteMapEntry { Loc = siteMapEntry.Loc + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate })); #endregion #region subcategory-category-city-project-listing // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["subcategory-category-city-project-listing"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion #region subcategory-category-city-district-project-listing // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["subcategory-category-city-district-project-listing"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion } #endregion #region PROJECT var projectModel = new SitemapData().GetProjects(); if (projectModel.Count > 0) { #region category-project listSiteMapEntry = new List<SiteMapEntry>(); foreach (var siteMapEntry in projectModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/" + item.Category.UrlFriendly() + "-" + item.CategoryId, Lastmod = getDate, Changefreq = "daily", Priority = 0.8m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); // Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["category-project"] + ConfigurationManager.AppSettings["extSitemap"]); // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["category-project"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion #region category-city-project listSiteMapEntry = new List<SiteMapEntry>(); foreach (var siteMapEntry in projectModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/" + item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.State.UrlFriendly() + "-s" + item.StateId, Lastmod = getDate, Changefreq = "daily", Priority = 0.8m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); // Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["category-city-project"] + ConfigurationManager.AppSettings["extSitemap"]); // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["category-city-project"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion #region category-city-district-project listSiteMapEntry = new List<SiteMapEntry>(); foreach (var siteMapEntry in projectModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/" + item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.State.UrlFriendly() + "-" + item.District.UrlFriendly() + "-d" + item.DistrictId, Lastmod = getDate, Changefreq = "daily", Priority = 0.8m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); // Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["category-city-district-project"] + ConfigurationManager.AppSettings["extSitemap"]); // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["category-city-district-project"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion #region project listSiteMapEntry = new List<SiteMapEntry>(); listSiteMapEntry.AddRange(projectModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/" + item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.Title.UrlFriendly() + "-" + item.Id, Lastmod = getDate, Changefreq = "daily", Priority = 0.8m })); siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); // Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["project"] + ConfigurationManager.AppSettings["extSitemap"]); // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["project"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion } var projectListingModel = new SitemapData().GetProjectListings(); #region subcategory-category-city-project-listing listSiteMapEntry = new List<SiteMapEntry>(); foreach (var siteMapEntry in projectListingModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/" + item.Level2Category.UrlFriendly() + "-" + item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.State.UrlFriendly() + "-s" + item.StateId + "/" + item.ProjectName.UrlFriendly() + "-p" + item.ProjectId, Lastmod = getDate, Changefreq = "daily", Priority = 0.9m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((siteMap.ToString())); //Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["subcategory-category-city-project-listing"] + ConfigurationManager.AppSettings["extSitemap"]); #endregion #region subcategory-category-city-district-project-listing listSiteMapEntry = new List<SiteMapEntry>(); foreach (var siteMapEntry in projectListingModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/" + item.Level2Category.UrlFriendly() + "-" + item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.State.UrlFriendly() + "-" + item.District.UrlFriendly() + "-d" + item.DistrictId + "/" + item.ProjectName.UrlFriendly() + "-p" + item.ProjectId, Lastmod = getDate, Changefreq = "daily", Priority = 0.9m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((siteMap.ToString())); //Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["subcategory-category-city-district-project-listing"] + ConfigurationManager.AppSettings["extSitemap"]); #endregion #endregion #region BUSINESS var businessModel = new SitemapData().GetCompanies(); if (businessModel.Count > 0) { #region category-business listSiteMapEntry = new List<SiteMapEntry>(); foreach (var siteMapEntry in businessModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/doanh-nghiep/" + item.Category.UrlFriendly() + "-" + item.CategoryId, Lastmod = getDate, Changefreq = "weekly", Priority = 0.5m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); // Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["category-business"] + ConfigurationManager.AppSettings["extSitemap"]); // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["category-business"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion #region category-city-business listSiteMapEntry = new List<SiteMapEntry>(); foreach (var siteMapEntry in businessModel.Select(item => new SiteMapEntry { //Loc = "http://www.muabannhadat.vn/doanh-nghiep/" + item.Category.UrlFriendly() + "-" + item.CategoryId + "?cmpsct=" + item.StateId, Loc = "http://www.muabannhadat.vn/doanh-nghiep/" + item.Category.UrlFriendly() + "-" + item.CategoryId, Lastmod = getDate, Changefreq = "weekly", Priority = 0.5m }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); // Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["category-city-business"] + ConfigurationManager.AppSettings["extSitemap"]); // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["category-city-business"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion #region business listSiteMapEntry = new List<SiteMapEntry>(); //listSiteMapEntry.AddRange(businessModel.Select(item => new SiteMapEntry //{ // Loc = "http://www.muabannhadat.vn/doanh-nghiep/" + item.Category.UrlFriendly() + "-" + item.CategoryId + "/detail/" + item.Name.UrlFriendly() + "-" + item.Id, // Lastmod = getDate, // Changefreq = "weekly", // Priority = 0.5m //})); listSiteMapEntry.AddRange(businessModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/doanh-nghiep/detail/" + item.Name.UrlFriendly() + "-" + item.Id, Lastmod = getDate, Changefreq = "weekly", Priority = 0.5m })); siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); // Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + ConfigurationManager.AppSettings["business"] + ConfigurationManager.AppSettings["extSitemap"]); // Save to sitemap listSiteMap.Add(new SiteMapEntry { Loc = ConfigurationManager.AppSettings["linkCategorySitemap"] + ConfigurationManager.AppSettings["business"] + ConfigurationManager.AppSettings["extSitemap"], Lastmod = getDate }); #endregion } #endregion // SITEMAP listSiteMap.Add(new SiteMapEntry { Loc = "http://www.muabannhadat.vn/tin-tuc/sitemap-3.xml", Lastmod = getDate }); siteMap = sitemapHelper.GenerateSiteMapMain(listSiteMap); doc.LoadXml((xmltype + siteMap)); //Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemap"] + "sitemap.xml"); }
public virtual bool ShouldExcludeContent( CurrentLanguageContent languageContentInfo, SiteDefinition siteSettings, SitemapData sitemapData) { return(ShouldExcludeContent(languageContentInfo.Content)); }
public static void WriteReportG() { var listSiteMapEntry = new List<SiteMapEntry> { new SiteMapEntry { Loc = "nha-dat-3490" } }; var listSiteMapEntryLocation = new List<SiteMapEntry>(); #region LISTING var listingModel = new SitemapData().GetListings(); if (listingModel.Count > 0) { #region category-listing foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = item.Level2Category.UrlFriendly() + "-" + item.Level2CategoryId }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } #endregion #region category-sub-category-listing foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = item.Level2Category.UrlFriendly() + "-" + item.Category.UrlFriendly() + "-" + item.CategoryId }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } #endregion //#region city //foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry //{ // Loc = item.State.UrlFriendly() + "-s" + item.StateId //}).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) //{ // listSiteMapEntryLocation.Add(siteMapEntry); //} //#endregion //#region city-district //foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry //{ // Loc = item.State.UrlFriendly() + "-" + item.District.UrlFriendly() + "-d" + item.DistrictId //}).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) //{ // listSiteMapEntryLocation.Add(siteMapEntry); //} //#endregion //#region city-district-ward //foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry //{ // Loc = item.State.UrlFriendly() + "-" + item.District.UrlFriendly() + "-" + item.Ward.UrlFriendly() + "-l" + item.WardId //}).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) //{ // listSiteMapEntryLocation.Add(siteMapEntry); //} //#endregion #region category-city-listing foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = item.Level2Category.UrlFriendly() + "-" + item.Level2CategoryId + "/" + item.State.UrlFriendly() + "-s" + item.StateId }).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntryLocation.Add(siteMapEntry); } #endregion #region subcategory-category-city-listing foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = item.Level2Category.UrlFriendly() + "-" + item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.State.UrlFriendly() + "-s" + item.StateId }).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntryLocation.Add(siteMapEntry); } #endregion #region category-city-district-listing foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = item.State.UrlFriendly() + "-" + item.District.UrlFriendly() + "-d" + item.DistrictId }).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntryLocation.Add(siteMapEntry); } foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = item.Level2Category.UrlFriendly() + "-" + item.Level2CategoryId + "/" + item.State.UrlFriendly() + "-" + item.District.UrlFriendly() + "-d" + item.DistrictId }).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntryLocation.Add(siteMapEntry); } #endregion #region subcategory-category-city-district-listing foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = item.Level2Category.UrlFriendly() + "-" + item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.State.UrlFriendly() + "-" + item.District.UrlFriendly() + "-d" + item.DistrictId }).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntryLocation.Add(siteMapEntry); } #endregion #region category-city-district-ward-listing foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = item.Level2Category.UrlFriendly() + "-" + item.Level2CategoryId + "/" + item.State.UrlFriendly() + "-" + item.District.UrlFriendly() + "-" + item.Ward.UrlFriendly() + "-l" + item.WardId }).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntryLocation.Add(siteMapEntry); } #endregion #region subcategory-category-city-district-ward-listing foreach (var siteMapEntry in listingModel.Select(item => new SiteMapEntry { Loc = item.Level2Category.UrlFriendly() + "-" + item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.State.UrlFriendly() + "-" + item.District.UrlFriendly() + "-" + item.Ward.UrlFriendly() + "-l" + item.WardId }).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntryLocation.Add(siteMapEntry); } #endregion } #endregion #region PROJECT var projectModel = new SitemapData().GetProjects(); if (projectModel.Count > 0) { #region category-project foreach (var siteMapEntry in projectModel.Select(item => new SiteMapEntry { Loc = item.Category.UrlFriendly() + "-" + item.CategoryId }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } #endregion #region category-city-project foreach (var siteMapEntry in projectModel.Select(item => new SiteMapEntry { Loc = item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.State.UrlFriendly() + "-s" + item.StateId }).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntryLocation.Add(siteMapEntry); } #endregion #region category-city-district-project foreach (var siteMapEntry in projectModel.Select(item => new SiteMapEntry { Loc = item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.State.UrlFriendly() + "-" + item.District.UrlFriendly() + "-d" + item.DistrictId }).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntryLocation.Add(siteMapEntry); } #endregion #region category-city-district-ward-project foreach (var siteMapEntry in projectModel.Select(item => new SiteMapEntry { Loc = item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.State.UrlFriendly() + "-" + item.District.UrlFriendly() +"-" + item.Ward.UrlFriendly() + "-l" + item.WardId }).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntryLocation.Add(siteMapEntry); } #endregion } #endregion #region BUSINESS var businessModel = new SitemapData().GetCompanies(); if (businessModel.Count > 0) { #region category-business foreach (var siteMapEntry in businessModel.Select(item => new SiteMapEntry { Loc = "doanh-nghiep/" + item.Category.UrlFriendly() + "-" + item.CategoryId }).Where(siteMapEntry => listSiteMapEntry.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntry.Add(siteMapEntry); } #endregion //#region category-city-business //foreach (var siteMapEntry in businessModel.Select(item => new SiteMapEntry //{ // Loc = item.Category.UrlFriendly() + "-" + item.CategoryId //}).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) //{ // listSiteMapEntryLocation.Add(siteMapEntry); //} //#endregion #region category-city-location-business foreach (var siteMapEntry in businessModel.Select(item => new SiteMapEntry { Loc = "doanh-nghiep/" +item.Location.UrlFriendly() + "/" + item.Category.UrlFriendly() + "-" + item.CategoryId }).Where(siteMapEntry => listSiteMapEntryLocation.All(s => s.Loc != siteMapEntry.Loc))) { listSiteMapEntryLocation.Add(siteMapEntry); } #endregion } #endregion #region save csv file var list = listSiteMapEntry.Select(m => m.Loc).ToList(); var listLocation = listSiteMapEntryLocation.Select(m => m.Loc).ToList(); const string firstMath = "(^/"; const string lastMath = "$)"; const string path = "C:/dataReport.csv"; var lines = new List<String>(); if (!File.Exists(path)) { File.Create(path).Close(); } if (!File.Exists(path)) return; lines.AddRange(list); using (var writer = new StreamWriter(path, false)) { foreach (var line in lines) { writer.WriteLine(new StringBuilder().Append(firstMath).Append(line).Append(lastMath).ToString()); } writer.Close(); } // Location const string pathLocation = "C:/dataReportLocation.csv"; var linesLocation = new List<String>(); if (!File.Exists(pathLocation)) { File.Create(pathLocation).Close(); } if (!File.Exists(pathLocation)) return; linesLocation.AddRange(listLocation); using (var writer = new StreamWriter(pathLocation, false)) { foreach (var line in linesLocation) { writer.WriteLine(new StringBuilder().Append(firstMath).Append(line).Append(lastMath).ToString()); } writer.Close(); } #endregion }
public static void WriteSiteMapForListing15Am() { //Create the XmlDocument. var doc = new XmlDocument(); var xmltype = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"; var sitemapHelper = new SiteMapHelper(); var getDate = DateTime.Now; var listSiteMapEntry = new List<SiteMapEntry>(); var siteMap = new XDocument(); #region listing follow sub-category // Get list sub category listing var listCategory = new SitemapData().GetCategoryListingList(); // Get 2000 newest by subcategory foreach (var category in listCategory) { var listingModel = new SitemapData().GetListingByCategory(category.CategoryId); listSiteMapEntry = new List<SiteMapEntry>(); listSiteMapEntry.AddRange(listingModel.Select(item => new SiteMapEntry { Loc = "http://www.muabannhadat.vn/" + item.Level2Category.UrlFriendly() + "-" + item.Category.UrlFriendly() + "-" + item.CategoryId + "/" + item.Title.UrlFriendly() + "-" + item.Id, Lastmod = getDate, Changefreq = "daily", Priority = 0.9m })); siteMap = sitemapHelper.GenerateSiteMap(listSiteMapEntry); doc.LoadXml((xmltype + siteMap)); //Save the document to a file. doc.Save(ConfigurationManager.AppSettings["pathSitemapCategory"] + category.Level2Category.UrlFriendly() + "-" + category.Category.UrlFriendly() + "-" + category.CategoryId + ConfigurationManager.AppSettings["extSitemap"]); } #endregion }