Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
                }
            }
        }
Exemplo n.º 3
0
        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);
                }
            }
        }