private async Task <LocalizationDocument> CreateDocumentAsync() { var indexes = await Session.QueryIndex <LocalizedContentItemIndex>(i => i.Published).ListAsync(); var document = new LocalizationDocument(); AddEntries(document, indexes.Select(i => new LocalizationEntry { ContentItemId = i.ContentItemId, LocalizationSet = i.LocalizationSet, Culture = i.Culture.ToLowerInvariant() })); return(document); }
public void RemoveEntries(LocalizationDocument document, IEnumerable <LocalizationEntry> entries) { foreach (var entry in entries) { if (!document.Localizations.ContainsKey(entry.ContentItemId)) { continue; } document.Localizations.Remove(entry.ContentItemId); if (document.LocalizationSets.TryGetValue(entry.LocalizationSet, out var localizations)) { localizations.RemoveAll(l => l.Culture == entry.Culture); } } }
private void AddEntries(LocalizationDocument document, IEnumerable <LocalizationEntry> entries) { foreach (var entry in entries) { if (document.Localizations.ContainsKey(entry.ContentItemId)) { continue; } document.Localizations[entry.ContentItemId] = entry; if (document.LocalizationSets.TryGetValue(entry.LocalizationSet, out var localizations)) { localizations.Add(entry); } else { localizations = new List <LocalizationEntry>(); document.LocalizationSets[entry.LocalizationSet] = localizations; localizations.Add(entry); } } }