Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 7
0
        public void Save(SitemapData sitemapData)
        {
            if (sitemapData == null)
            {
                return;
            }

            SitemapStore.Save(sitemapData);
        }
Ejemplo n.º 8
0
        private static SitemapData CreateDefaultConfig()
        {
            var blankConfig = new SitemapData
            {
                Host             = "sitemap.xml",
                IncludeDebugInfo = false,
                SitemapFormat    = SitemapFormat.Standard
            };

            return(blankConfig);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        /// <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);
        }
Ejemplo n.º 11
0
        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 + "\"");
            }
        }
Ejemplo n.º 12
0
        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 + "\"");
            }
        }
Ejemplo n.º 13
0
        /// <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"));
        }
Ejemplo n.º 15
0
        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));
        }
Ejemplo n.º 16
0
        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) + "\"");
            }
        }
Ejemplo n.º 17
0
        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));
        }
Ejemplo n.º 18
0
        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();
        }
Ejemplo n.º 19
0
        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);
        }
Ejemplo n.º 20
0
        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();
        }
Ejemplo n.º 22
0
        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);
        }
Ejemplo n.º 23
0
        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"));
        }
Ejemplo n.º 24
0
        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));
        }
Ejemplo n.º 25
0
 public void Save(SitemapData sitemapData)
 {
     sitemapRepository.Save(sitemapData);
 }
Ejemplo n.º 26
0
 public string GetSitemapUrl(SitemapData sitemapData)
 {
     return(string.Format("{0}{1}", sitemapData.SiteUrl, GetHostWithLanguage(sitemapData)));
 }
Ejemplo n.º 27
0
 public void Save(SitemapData sitemapData)
 {
     _sitemapLoader.Save(sitemapData);
 }
Ejemplo n.º 28
0
        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");
        }
Ejemplo n.º 29
0
 public virtual bool ShouldExcludeContent(
     CurrentLanguageContent languageContentInfo, SiteDefinition siteSettings, SitemapData sitemapData)
 {
     return(ShouldExcludeContent(languageContentInfo.Content));
 }
Ejemplo n.º 30
0
        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
        }
Ejemplo n.º 31
0
        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
        }