Beispiel #1
0
        public override void ExecuteResult(ControllerContext context)
        {
            var encoding    = context.HttpContext.Response.ContentEncoding.WebName;
            var declaration = new XDeclaration("1.0", encoding, "yes");

            var mappedElements = from sitemap in _model
                                 select MapHelpers.Map(sitemap);

            var content         = new XElement("urlset", _namespace, mappedElements);
            var sitemapDocument = new XDocument(declaration, content);

            context.HttpContext.Response.ContentType = "application/rss+xml";
            context.HttpContext.Response.Flush();
            context.HttpContext.Response.Write(sitemapDocument.Declaration + sitemapDocument.ToString());
        }
Beispiel #2
0
        public virtual ActionResult Sitemap()
        {
            var model = new SitemapModel(new[] {
                MapHelpers.Map(Url, MVC.Product.List(null, null, null, null, null))
            });

            var categories = _categoryRepository.GetAll();
            var products   = _productRepository.GetAll();

            foreach (var sitemap in categories.ToList().Select(c => MapHelpers.Map(Url, c)))
            {
                model.Add(sitemap);
            }

            foreach (var sitemap in products.ToList().Select(p => MapHelpers.Map(Url, p)))
            {
                model.Add(sitemap);
            }

            model.Add(MapHelpers.Map(Url, MVC.Home.Sitemap()));

            return(Sitemap(model));
        }