コード例 #1
0
        public async Task <IEnumerable <LanguageKey> > GetPageLanguages(string pageId)
        {
            var languages = new List <LanguageKey>();
            var page      = await _pageRepository.GetOneAsync(pageId);

            var pageLanguages = await _pageRepository.GetLanguageKeys(pageId);

            languages.AddRange(pageLanguages);
            if (page.Builder != null && page.Builder.Sections != null)
            {
                foreach (var section in page.Builder.Sections)
                {
                    switch (section.ConstructionType)
                    {
                    case SectionContructionType.Standard:
                        var standardLanguages = await _standardRepository.GetLanguageKeysAsync(section.ComponentId);

                        languages.AddRange(standardLanguages?.ToList());
                        break;

                    case SectionContructionType.Array:
                        var standardArrayLanguages = await _standardRepository.GetLanguageKeysAsync(section.ComponentId);

                        languages.AddRange(standardArrayLanguages.ToList());
                        break;

                    case SectionContructionType.DynamicList:
                        var dynamicListLanguages = await _dynamicListRepository.GetLanguageKeysAsync(section.ComponentId);

                        languages.AddRange(dynamicListLanguages.ToList());
                        break;

                    case SectionContructionType.Chart:
                        var chartLanguages = await _chartRepository.GetLanguageKeysAsync(section.ComponentId);

                        languages.AddRange(chartLanguages.ToList());
                        break;
                    }
                }
            }
            return(languages);
        }