private void CreateCultureHierarchy(IDatabaseStaticTextContext dbContext, Culture culture) { var cultureHierarchyDao = new CultureHierarchyDao(dbContext.CultureHierarchy); var cultureDao = new CultureDao(dbContext.Culture); cultureHierarchyDao.MakeCultureSelfReferencing(culture); var defaultCultureName = m_configuration.DefaultCulture.Name; var defaultCulture = cultureDao.FindByName(defaultCultureName); var cultureInfo = new CultureInfo(culture.Name); if (cultureInfo.IsNeutralCulture) //Just reference to default culture { cultureHierarchyDao.MakeCultureReference(culture, defaultCulture, 1); } else { var parentCultureName = cultureInfo.Parent.Name; var parentCulture = cultureDao.FindByName(parentCultureName); if (parentCulture == null) { cultureHierarchyDao.MakeCultureReference(culture, defaultCulture, 1); } else { cultureHierarchyDao.MakeCultureReference(culture, parentCulture, 1); cultureHierarchyDao.MakeCultureReference(culture, defaultCulture, 2); } } }
/// <summary> /// Creates for given culture self reference in culture hierarchy tree with level 0 (if not already exists). /// </summary> /// <param name="cultureInfo">Culture</param> private async Task CreateCultureHierarchySelfReference(CultureInfo cultureInfo) { using (var dbContext = m_dbContextFunc.Invoke()) { var cultureDao = new CultureDao(dbContext.Culture); var culture = cultureDao.FindByName(cultureInfo.Name); var cultureHierarchyDao = new CultureHierarchyDao(dbContext.CultureHierarchy); var isCultureSelfReferencing = await cultureHierarchyDao.IsCultureSelfReferencing(culture); if (!isCultureSelfReferencing) { cultureHierarchyDao.MakeCultureSelfReferencing(culture); dbContext.SaveChanges(); } } }