public IEnumerable <Models.Sitemap> GenerateSitemaps(SitemapParams param) { if (string.IsNullOrWhiteSpace(param.BaseUrl)) { throw new ArgumentException(GetMessageOfNullWhiteSpace(nameof(param.BaseUrl)), nameof(param)); } if (string.IsNullOrWhiteSpace(param.Scope)) { throw new ArgumentException(GetMessageOfNullWhiteSpace(nameof(param.Scope)), nameof(param)); } if (param.Culture == null) { throw new ArgumentException(GetMessageOfNull(nameof(param.Culture)), nameof(param)); } var iterationIndex = 1; var offset = 0; do { var entries = EntryProvider.GetEntriesAsync( param, culture: param.Culture, offset: offset, count: NumberOfEntriesPerSitemap ).Result; var isEntriesNotEnough = entries.Count() < NumberOfEntriesPerSitemap; if (entries.Any()) { yield return(new Models.Sitemap { Name = isEntriesNotEnough && iterationIndex == 1 ? GetSitemapName(param.Culture) : GetSitemapName(param.Culture, iterationIndex), Entries = entries.ToArray(), }); offset += NumberOfEntriesPerSitemap; iterationIndex += 1; if (isEntriesNotEnough) { break; } } else { break; } }while (true); }
public IEnumerable <Models.Sitemap> GenerateSitemaps(SitemapParams sitemapParams) { Guard.NotNullOrWhiteSpace(sitemapParams.BaseUrl, nameof(sitemapParams.BaseUrl)); Guard.NotNullOrWhiteSpace(sitemapParams.Scope, nameof(sitemapParams.Scope)); Guard.NotNull(sitemapParams.Culture, nameof(sitemapParams.Culture)); var iterationIndex = 1; var offset = 0; do { var entries = EntryProvider.GetEntriesAsync( sitemapParams, culture: sitemapParams.Culture, offset: offset, count: NumberOfEntriesPerSitemap ).Result; var isEntriesNotEnough = entries.Count() < NumberOfEntriesPerSitemap; if (entries.Any()) { yield return(new Models.Sitemap { Name = isEntriesNotEnough && iterationIndex == 1 ? GetSitemapName(sitemapParams.Culture) : GetSitemapName(sitemapParams.Culture, iterationIndex), Entries = entries.ToArray(), }); offset += NumberOfEntriesPerSitemap; iterationIndex += 1; if (isEntriesNotEnough) { break; } } else { break; } }while (true); }