public IList <DynamicText> GetAllDynamicText(string name, string scope) { using (var dbContext = m_dbContextFunc.Invoke()) { var dictionaryScope = GetDictionaryScope(dbContext, scope); var staticTextDao = new StaticTextDao(dbContext.StaticText); var values = staticTextDao.FindByNameAndScope(name, dictionaryScope, dbContext.CultureHierarchy); var resultList = new List <DynamicText>(); foreach (var value in values) { var dynamicText = new DynamicText { FallBack = false, Culture = value.Culture.Name, DictionaryScope = value.DictionaryScope.Name, Format = value.Format, ModificationTime = value.ModificationTime, ModificationUser = value.ModificationUser, Name = value.Name, Text = value.Text }; resultList.Add(dynamicText); } return(resultList); } }
public DynamicText SaveDynamicText(DynamicText dynamicText, IfDefaultNotExistAction actionForDefaultCulture = IfDefaultNotExistAction.DoNothing) { using (var dbContext = m_dbContextFunc.Invoke()) { var dao = new StaticTextDao(dbContext.StaticText); var dictionaryScope = GetDictionaryScope(dbContext, dynamicText.DictionaryScope); if (dictionaryScope.Name != dynamicText.DictionaryScope) { dictionaryScope = CreateDictionaryScope(dbContext, dynamicText.DictionaryScope); } var culture = GetCultureByNameOrGetDefault(dbContext, dynamicText.Culture); var existsInCulture = culture.Name == dynamicText.Culture; if (!existsInCulture) { culture = CreateCulture(dbContext, dynamicText.Culture); CreateCultureHierarchy(dbContext, culture); } var staticText = dao.FindByNameAndCultureAndScope( dynamicText.Name, culture, dictionaryScope, dbContext.CultureHierarchy ); if (staticText == null || !existsInCulture || staticText.CultureId != culture.Id) { staticText = new StaticText { Format = dynamicText.Format, ModificationTime = DateTime.UtcNow, ModificationUser = dynamicText.ModificationUser, Name = dynamicText.Name, Text = dynamicText.Text, Culture = culture, DictionaryScope = dictionaryScope }; dao.Create(staticText); } else { staticText.Format = dynamicText.Format; staticText.ModificationTime = DateTime.UtcNow; staticText.ModificationUser = dynamicText.ModificationUser; staticText.Name = dynamicText.Name; staticText.Text = dynamicText.Text; dao.Update(staticText); } ExecuteDefaultCultureAction(actionForDefaultCulture, dynamicText, culture, dictionaryScope, dbContext, dao); dbContext.SaveChanges(); return(dynamicText); } }
public void FindAllByCultureAndScopeTest() { using (var context = new StaticTextsContext(m_builderOptions)) { var culture = context.Culture.First(t => t.Id == 1); var dictionaryScope = context.DictionaryScope.First(t => t.Id == 2); var staticTextDao = new StaticTextDao(context.StaticText); var result = staticTextDao.FindAllByCultureAndScope(culture, dictionaryScope); Assert.AreEqual(7, result.Length); Assert.AreEqual("support", result[0].Name); } }
public LocalizedString DatabaseTranslateFormat(string text, object[] parameters, CultureInfo cultureInfo, string scope) { using (var dbContext = m_dbContextFunc.Invoke()) { var cultureDao = new CultureDao(dbContext.Culture); var culture = cultureDao.FindByName(cultureInfo.Name); var dictionaryScopeDao = new DictionaryScopeDao(dbContext.DictionaryScope); var dictionaryScope = dictionaryScopeDao.FindByName(scope); var staticTextDao = new StaticTextDao(dbContext.StaticText); IStaticText dbResult = staticTextDao.FindByNameAndCultureAndScope(text, culture, dictionaryScope, dbContext.CultureHierarchy); return(new LocalizedString(text, dbResult.Text, false)); } }
public LocalizedString DatabaseTranslate(string text, CultureInfo cultureInfo, string scope) { using (var dbContext = m_dbContextFunc.Invoke()) { var culture = GetCultureByNameOrGetDefault(dbContext, cultureInfo.Name); var dictionaryScope = GetDictionaryScope(dbContext, scope); var staticTextDao = new StaticTextDao(dbContext.StaticText); IStaticText dbResult = staticTextDao.FindByNameAndCultureAndScope(text, culture, dictionaryScope, dbContext.CultureHierarchy); if (dbResult == null) { return(null); } return(new LocalizedString(text, dbResult.Text, false)); } }
public void FindByNameAndCultureAndScopeTest() { using (var context = new StaticTextsContext(m_builderOptions)) { var culture = context.Culture.First(t => t.Id == 1); var dictionaryScope = context.DictionaryScope.First(t => t.Id == 2); var staticTextDao = new StaticTextDao(context.StaticText); IStaticText result = staticTextDao.FindByNameAndCultureAndScope("support", culture, dictionaryScope, context.CultureHierarchy); Assert.AreEqual(1, result.Id); Assert.AreEqual(1, result.Format); Assert.AreEqual( "# Podpora\r\nPodpora Vokabuláře webového: \r\n\r\n2012–2015 projekt MK ČR č. DF12P01OVV028 *Informační technologie ve službách jazykového kulturního bohatství (IT JAKUB)* \r\n2010–2015 projekt MŠMT LINDAT-CLARIN č. LM2010013 *Vybudování a provoz českého uzlu pan-evropské infrastruktury pro výzkum* \r\n2010–2014 projekt GA ČR č. P406/10/1140 *Výzkum historické češtiny (na základě nových materiálových bází)* \r\n2010–2014 projekt GA ČR č. P406/10/1153 *Slovní zásoba staré češtiny a její lexikografické zpracování* \r\n2005–2011 projekt MŠMT ČR LC 546 *Výzkumné centrum vývoje staré a střední češtiny (od praslovanských kořenů po současný stav)* \r\n", result.Text); } }
public IDictionary <string, LocalizedString> GetDictionary(CultureInfo cultureInfo, string scope) { using (var dbContext = m_dbContextFunc.Invoke()) { var culture = GetCultureByNameOrGetDefault(dbContext, cultureInfo.Name); var dictionaryScope = GetDictionaryScope(dbContext, scope); var staticTextDao = new StaticTextDao(dbContext.StaticText); var result = staticTextDao.FindAllByCultureAndScope(culture, dictionaryScope); var resultDictionary = new Dictionary <string, LocalizedString>(); foreach (var singleStaticText in result) { resultDictionary.Add(singleStaticText.Name, new LocalizedString(singleStaticText.Name, singleStaticText.Text, false)); } return(resultDictionary); } }
public void DeleteDynamicText(string name, string scope, CultureInfo cultureInfo) { using (var dbContext = m_dbContextFunc.Invoke()) { var culture = GetCultureByNameOrGetDefault(dbContext, cultureInfo.Name); var dao = new StaticTextDao(dbContext.StaticText); var dictionaryScope = GetDictionaryScope(dbContext, scope); var staticText = dao.FindByNameAndCultureAndScope( name, culture, dictionaryScope, dbContext.CultureHierarchy ); if (staticText == null) { return; } dao.Delete(staticText); dbContext.SaveChanges(); } }
public void DeleteAllDynamicText(string name, string scope) { using (var dbContext = m_dbContextFunc.Invoke()) { var dao = new StaticTextDao(dbContext.StaticText); var dictionaryScope = GetDictionaryScope(dbContext, scope); var staticTextList = dao.FindByNameAndScope(name, dictionaryScope, dbContext.CultureHierarchy); if (staticTextList.Count == 0) { return; } foreach (var staticText in staticTextList) { dao.Delete(staticText); } dbContext.SaveChanges(); } }
public DynamicText GetDynamicText(string name, string scope, CultureInfo cultureInfo) { using (var dbContext = m_dbContextFunc.Invoke()) { var dictionaryScope = GetDictionaryScope(dbContext, scope); var culture = GetCultureByNameOrGetDefault(dbContext, cultureInfo.Name); var value = new StaticTextDao(dbContext.StaticText).FindByNameAndCultureAndScope( name, culture, dictionaryScope, dbContext.CultureHierarchy ); return(new DynamicText { FallBack = value.Culture.Name != cultureInfo.Name, Culture = value.Culture.Name, DictionaryScope = value.DictionaryScope.Name, Format = value.Format, ModificationTime = value.ModificationTime, ModificationUser = value.ModificationUser, Name = value.Name, Text = value.Text }); } }
/// <summary> /// Executes an action on default culture text if it does not exist. Actions include - nothing, create empty string, copy current culture text /// </summary> /// <param name="actionForDefaultCulture">Specific action</param> /// <param name="dynamicText">Current dynamic text entity</param> /// <param name="currentCulture">Current culture entity</param> /// <param name="dictionaryScope">Current dictionary scope entity</param> /// <param name="dbContext">Database context</param> /// <param name="dao">DAO of static text entity</param> private void ExecuteDefaultCultureAction(IfDefaultNotExistAction actionForDefaultCulture, DynamicText dynamicText, Culture currentCulture, DictionaryScope dictionaryScope, IDatabaseStaticTextContext dbContext, StaticTextDao dao) { var defaultCulture = GetDefaultCulture(dbContext); if (currentCulture == defaultCulture) { return; } var defaultText = dao.FindByNameAndCultureAndScope( dynamicText.Name, defaultCulture, dictionaryScope, dbContext.CultureHierarchy ); if (defaultText != null) { return; } defaultText = new StaticText { Format = dynamicText.Format, ModificationTime = DateTime.UtcNow, ModificationUser = dynamicText.ModificationUser, Name = dynamicText.Name, Culture = defaultCulture, DictionaryScope = dictionaryScope, }; switch (actionForDefaultCulture) { case IfDefaultNotExistAction.DoNothing: return; case IfDefaultNotExistAction.CreateEmpty: defaultText.Text = string.Empty; dao.Create(defaultText); break; case IfDefaultNotExistAction.CreateTextCopy: defaultText.Text = dynamicText.Text; dao.Create(defaultText); break; default: throw new ArgumentOutOfRangeException(nameof(actionForDefaultCulture), actionForDefaultCulture, "Invalid default language save action"); } }