protected override async Task<IDictionary<string, CatalogItemSummary>> SavePages(Guid commitId, DateTime commitTimeStamp, IDictionary<string, CatalogItemSummary> itemEntries, CancellationToken cancellationToken)
{
IDictionary<string, CatalogItemSummary> pageEntries;
if (_first && !_append)
{
pageEntries = new Dictionary<string, CatalogItemSummary>();
_first = false;
}
else
{
pageEntries = await LoadIndexResource(RootUri, cancellationToken);
}
bool isExistingPage;
Uri pageUri = GetPageUri(pageEntries, itemEntries.Count, out isExistingPage);
var items = new Dictionary<string, CatalogItemSummary>(itemEntries);
if (isExistingPage)
{
IDictionary<string, CatalogItemSummary> existingItemEntries = await LoadIndexResource(pageUri, cancellationToken);
foreach (var entry in existingItemEntries)
{
items.Add(entry.Key, entry.Value);
}
}
await SaveIndexResource(pageUri, Schema.DataTypes.CatalogPage, commitId, commitTimeStamp, items, RootUri, null, null, cancellationToken);
pageEntries[pageUri.AbsoluteUri] = new CatalogItemSummary(Schema.DataTypes.CatalogPage, commitId, commitTimeStamp, items.Count);
return pageEntries;
}