public async Task <ActionResult> AuxAdd(KeywordTranslation t) { var cl = db.Entities .FirstOrDefault(c => c.Translations.Any(ct => ct.LanguageCode == t.LanguageCode && ct.Value == t.Value && ct.KeywordId != t.KeywordId) ); if (cl == null) { cl = new Keyword(); cl.Translations.Add(t); db.Add(cl); await db.SaveChangesAsync(); } return(Json((await db.Entities .OrderBy(ct => ct.Id) .ToListAsync()) .Select(ct => new TranslatedViewModel <Keyword, KeywordTranslation>(ct)) .Select(ct => new { value = ct.Entity.Id.ToString(), text = ct.Translation.Value, selected = ct.Entity.Id == cl.Id }) .ToList())); }
private void SeedKeywords(ArchiveDataContext db) { for (int i = 1; i <= 10; i++) { var kw = new Keyword { Id = i }; var tr = new KeywordTranslation { KeywordId = kw.Id, LanguageCode = "pt", Value = "Indexação " + i }; kw.Translations.Add(tr); if (i % 3 == 0) { kw.Translations.Add(new KeywordTranslation { KeywordId = kw.Id, LanguageCode = "en", Value = "Keyword " + i }); } if (!db.KeywordTranslations.Any(kt => kt.Value == tr.Value && kt.LanguageCode == tr.LanguageCode)) { db.Keywords.Add(kw); } } db.SaveChanges(); }
public ActionResult AuxAdd() { var model = new KeywordTranslation { LanguageCode = LanguageDefinitions.DefaultLanguage }; return(PartialView("_KeywordFields", model)); }
private bool DoesKeywordExist(KeywordTranslation k) { return(db.Set <KeywordTranslation>() .Any(t => t.LanguageCode == k.LanguageCode && t.Value == k.Value && t.KeywordId != k.KeywordId)); }
// GET: BackOffice/Keywords/Create public ActionResult Create() { var model = new KeywordTranslation { LanguageCode = LanguageDefinitions.DefaultLanguage }; return(View(model)); }
static public CultureInfo GetSpecificCultureInfo(CultureInfo language) { //HACK: we need to have a better solution if (!language.IsNeutralCulture) { return(language); } KeywordTranslation translation = GetTranslation(language); return(translation.DefaultSpecificCulture); }
private static KeywordTranslation LoadTranslation(CultureInfo language) { var assembly = typeof(LanguageHelper).Assembly; var docStream = assembly.GetManifestResourceStream("TechTalk.SpecFlow.Languages.xml"); if (docStream == null) { throw new InvalidOperationException("Language resource not found."); } XDocument languageDoc; using (var reader = new StreamReader(docStream)) { languageDoc = XDocument.Load(reader); } XElement langElm = GetBestFitLanguageElement(languageDoc, language); KeywordTranslation result = new KeywordTranslation(); if (language.IsNeutralCulture) { var defaultSpecificCultureAttr = langElm.Attribute(XName.Get("defaultSpecificCulture", "")); if (defaultSpecificCultureAttr == null) { result.DefaultSpecificCulture = CultureInfoHelper.GetCultureInfo("en-US"); } else { result.DefaultSpecificCulture = CultureInfoHelper.GetCultureInfo(defaultSpecificCultureAttr.Value); } } else { result.DefaultSpecificCulture = language; } foreach (StepDefinitionKeyword keyword in EnumHelper.GetValues(typeof(StepDefinitionKeyword))) { //NOTE: we only load the first translation of each keyword XElement keywordElm = langElm.Element(keyword.ToString()); Debug.Assert(keywordElm != null); result[keyword] = keywordElm.Value; } return(result); }
public async Task <ActionResult> Create(KeywordTranslation kt) { if (DoesKeywordExist(kt)) { ModelState.AddModelError("Value", KeywordStrings.Validation_AlreadyExists); } if (ModelState.IsValid) { var keyword = new Keyword(); keyword.Translations.Add(kt); db.Add(keyword); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(kt)); }
public async Task <ActionResult> AddTranslation(KeywordTranslation translation) { if (DoesKeywordExist(translation)) { ModelState.AddModelError("Value", KeywordStrings.Validation_AlreadyExists); } if (ModelState.IsValid) { db.AddTranslation(translation); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } ViewBag.Languages = LanguageDefinitions.GenerateAvailableLanguageDDL( (await db.GetByIdAsync(translation.KeywordId)).Translations.Select(t => t.LanguageCode)); return(View(translation)); }
public async Task <ActionResult> AddTranslation(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var k = await db.GetByIdAsync(id); if (k == null) { return(HttpNotFound()); } ViewBag.Languages = LanguageDefinitions.GenerateAvailableLanguageDDL(k.Translations.Select(t => t.LanguageCode)); var model = new KeywordTranslation { KeywordId = k.Id }; return(View(model)); }
public static string GetDefaultKeyword(CultureInfo language, StepDefinitionKeyword keyword) { KeywordTranslation translation = GetTranslation(language); return(translation[keyword].DefaultKeyword); }
public static string[] GetKeywords(CultureInfo language, StepDefinitionKeyword keyword) { KeywordTranslation translation = GetTranslation(language); return(translation[keyword].Keywords); }