コード例 #1
0
        /// <summary>
        /// Checks if cultures from configuration file are in database.
        /// </summary>
        public void CheckCulturesInDatabase()
        {
            var supportedCultures = m_configuration.SupportedCultures;
            var availableCultures = m_cultureUoW.FindAllCultures();

            foreach (var supportedCulture in supportedCultures)
            {
                if (availableCultures.Any(x => x.Name == supportedCulture.Name))
                {
                    continue;
                }

                var id      = m_cultureUoW.AddCulture(supportedCulture.Name);
                var culture = m_cultureUoW.GetCultureById(id);

                availableCultures.Add(culture);
            }

            var cultureHierarchies = m_cultureHierarchyUoW.FindAllCultureHierarchies();

            foreach (var availableCulture in availableCultures)
            {
                var parentCulture = new CultureInfo(availableCulture.Name);

                byte level = 0;
                while (parentCulture != null)
                {
                    var parentCultureEntity = availableCultures.First(x => x.Name == parentCulture.Name);

                    if (!cultureHierarchies.Any(x =>
                                                x.Culture.Equals(availableCulture) &&
                                                x.ParentCulture.Equals(parentCultureEntity)
                                                ))
                    {
                        m_cultureHierarchyUoW.AddCultureHierarchy(
                            availableCulture,
                            parentCultureEntity,
                            level
                            );
                    }

                    level++;
                    parentCulture = m_fallbackCultureResolver.FallbackCulture(parentCulture);
                }
            }
        }