コード例 #1
0
        private async Task <bool> BuildUrlAsync(SitemapBuilderContext context, ContentItem contentItem, XElement url)
        {
            var sitemapMetadataAspect = await _contentManager.PopulateAspectAsync <SitemapMetadataAspect>(contentItem);

            if (sitemapMetadataAspect.Exclude)
            {
                return(false);
            }

            var locValue = await _routeableContentTypeCoordinator.GetRouteAsync(context, contentItem);

            var loc = new XElement(Namespace + "loc");

            loc.Add(locValue);
            url.Add(loc);
            return(true);
        }
コード例 #2
0
        private async Task <bool> BuildUrlAsync(SitemapBuilderContext context, ContentItem contentItem, XElement url)
        {
            var isValid = false;

            foreach (var validationProvider in _sitemapContentItemValidationProviders)
            {
                isValid = await validationProvider.ValidateContentItem(contentItem);
            }

            if (!isValid)
            {
                return(false);
            }

            var locValue = await _routeableContentTypeCoordinator.GetRouteAsync(context, contentItem);

            var loc = new XElement(Namespace + "loc");

            loc.Add(locValue);
            url.Add(loc);
            return(true);
        }
        public async Task <bool> ApplyExtendedMetadataAsync(
            SitemapBuilderContext context,
            ContentItemsQueryContext queryContext,
            ContentItem contentItem,
            XElement url)
        {
            var part = contentItem.As <LocalizationPart>();

            if (part == null)
            {
                return(true);
            }

            var localizedContentParts = queryContext.ReferenceContentItems
                                        .Select(ci => ci.As <LocalizationPart>())
                                        .Where(cp => cp.LocalizationSet == part.LocalizationSet);

            foreach (var localizedPart in localizedContentParts)
            {
                var sitemapMetadataAspect = await _contentManager.PopulateAspectAsync <SitemapMetadataAspect>(localizedPart.ContentItem);

                if (sitemapMetadataAspect.Exclude)
                {
                    continue;
                }

                var hrefValue = await _routeableContentTypeCoordinator.GetRouteAsync(context, localizedPart.ContentItem);

                var linkNode = new XElement(ExtendedNamespace + "link",
                                            new XAttribute("rel", "alternate"),
                                            new XAttribute("hreflang", localizedPart.Culture),
                                            new XAttribute("href", hrefValue));

                url.Add(linkNode);
            }

            return(true);
        }