Ejemplo n.º 1
0
        public async Task <SitemapResult> Build()
        {
            var result = new SitemapResult();

            var stories = (await _client
                           .Stories()
                           .ForCurrentUiCulture()
                           .ExcludingFields("content")
                           .Load <StoryblokComponent>()).ToList();

            foreach (var s in stories)
            {
                var slug = s.FullSlug ?? "";

                if (!string.IsNullOrWhiteSpace(slug))
                {
                    if (_options.Value.IgnoreSlugs.Any(x => slug.Equals(x.Trim('/'), StringComparison.InvariantCultureIgnoreCase)))
                    {
                        continue;
                    }

                    if (_options.Value.IgnoreSlugs.Any(x => x.EndsWith("*", StringComparison.InvariantCultureIgnoreCase) && slug.StartsWith(x.TrimEnd('*').Trim('/'), StringComparison.InvariantCultureIgnoreCase)))
                    {
                        continue;
                    }
                }

                if (_options.Value.SitemapFilter.Invoke(s))
                {
                    result.Locations.Add(new SitemapResult.SitemapLocation(GetFullUrl(s.FullSlug), s.PublishedAt ?? s.CreatedAt));
                }
            }

            return(result);
        }
Ejemplo n.º 2
0
        public HeaderViewModel(StoryblokStoriesClient storiesClient, StoryblokStoryClient storyClient)
        {
            var pages = storiesClient.Stories()
                        .StartingWith("")
                        .ExcludingFields("body", "title", "description", "keywords")
                        .Having("menu_title", FilterOperation.NotIn, "")
                        .Load <PageComponent>().GetAwaiter().GetResult();

            var storiesForNavigation = new List <NavigationItem>();

            foreach (var minimalStory in pages)
            {
                if (!string.IsNullOrWhiteSpace(minimalStory.Content?.MenuTitle))
                {
                    var story = storyClient.Story().WithCulture(CultureInfo.CurrentUICulture).WithSlug(minimalStory.FullSlug).Load().GetAwaiter().GetResult();

                    storiesForNavigation.Add(new NavigationItem
                    {
                        FullSlug = story.FullSlug,
                        Title    = ((PageComponent)story.Content).MenuTitle,
                        Order    = ((PageComponent)story.Content).MenuOrder
                    });
                }
            }

            StoriesForNavigation = storiesForNavigation.OrderBy(x => x.Order);
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Stories()
        {
            var stories = await _storyblokClient.Stories().StartingWith("").Load();

            return(View(stories));
        }