コード例 #1
0
 /// <summary>
 ///     Constructor to inject dependencies into the handler
 /// </summary>
 public XmlSitemapHandler(IDependencyFactory dependencyFactory)
 {
     _sitemapCache  = dependencyFactory.CreateCache();
     _generator     = dependencyFactory.CreateGenerator();
     _contentEngine = dependencyFactory.CreateEngine();
     _logger        = dependencyFactory.CreateLogger();
 }
コード例 #2
0
 public RebuildXmlSitemapTask(
     IStoreService storeService,
     ILanguageService languageService,
     IXmlSitemapGenerator generator,
     SeoSettings seoSettings)
 {
     _storeService    = storeService;
     _languageService = languageService;
     _generator       = generator;
     _seoSettings     = seoSettings;
 }
コード例 #3
0
 public RebuildXmlSitemapTask(
     IStoreContext storeContext,
     ILanguageService languageService,
     IXmlSitemapGenerator generator,
     ISettingFactory settingFactory)
 {
     _storeContext    = storeContext;
     _languageService = languageService;
     _generator       = generator;
     _settingFactory  = settingFactory;
 }
コード例 #4
0
 public RebuildXmlSitemapTask(
     IStoreService storeService,
     ILanguageService languageService,
     IXmlSitemapGenerator generator,
     ISettingService settingService)
 {
     _storeService    = storeService;
     _languageService = languageService;
     _generator       = generator;
     _settingService  = settingService;
 }
コード例 #5
0
        /// <summary>
        ///     Constructor for the sitemap handler
        /// </summary>
        public XmlSitemapHandler()
        {
            UmbracoContext.EnsureContext(
                new HttpContextWrapper(HttpContext.Current),
                ApplicationContext.Current,
                true);

            var factory = new WebConfigDependencyFactory();

            _sitemapCache  = factory.CreateCache();
            _generator     = factory.CreateGenerator();
            _contentEngine = factory.CreateEngine();
        }
コード例 #6
0
        /// <summary>
        ///     Constructor for the sitemap handler
        /// </summary>
        public XmlSitemapHandler()
        {
            /*
             * UmbracoContext.EnsureContext(
             *  new HttpContextWrapper(HttpContext.Current),
             *  ApplicationContext.Current,
             *  true);
             */
            // TODO context ^. use providers. cleanup configuration folder and maybe file/folder organizing in project. update/add tests.

            var factory = new WebConfigDependencyFactory();

            _sitemapCache  = factory.CreateCache();
            _generator     = factory.CreateGenerator();
            _contentEngine = factory.CreateEngine();
            _logger        = factory.CreateLogger();
        }
コード例 #7
0
        public async Task Invoke(HttpContext context, SeoSettings seoSettings, IXmlSitemapGenerator sitemapGenerator)
        {
            var response = context.Response;

            if (!seoSettings.XmlSitemapEnabled)
            {
                response.StatusCode = 404;
                return;
            }

            try
            {
                //var index = context.Request.Query["index"].ToString().Convert<int>();
                var index     = context.GetRouteValueAs <int>("index");
                var partition = await sitemapGenerator.GetSitemapPartAsync(index);

                using (partition.Stream)
                {
                    response.StatusCode    = 200;
                    response.ContentType   = "application/xml";
                    response.ContentLength = partition.Stream.Length;
                    await partition.Stream.CopyToAsync(response.Body);
                }
            }
            catch (IndexOutOfRangeException)
            {
                await SendStatus(HttpStatusCode.BadRequest, "Sitemap index is out of range.");
            }
            catch (Exception ex)
            {
                await SendStatus(HttpStatusCode.InternalServerError, ex.Message);

                //throw;
            }

            Task SendStatus(HttpStatusCode code, string message)
            {
                response.StatusCode = (int)code;
                return(response.WriteAsync(message));
            }
        }
コード例 #8
0
 public RebuildXmlSitemapTask(IXmlSitemapGenerator generator, SeoSettings seoSettings)
 {
     _generator   = generator;
     _seoSettings = seoSettings;
 }