Пример #1
0
        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();
        }
Пример #3
0
        public ActionResult AuxAdd()
        {
            var model = new KeywordTranslation {
                LanguageCode = LanguageDefinitions.DefaultLanguage
            };

            return(PartialView("_KeywordFields", model));
        }
Пример #4
0
 private bool DoesKeywordExist(KeywordTranslation k)
 {
     return(db.Set <KeywordTranslation>()
            .Any(t =>
                 t.LanguageCode == k.LanguageCode &&
                 t.Value == k.Value &&
                 t.KeywordId != k.KeywordId));
 }
Пример #5
0
        // GET: BackOffice/Keywords/Create
        public ActionResult Create()
        {
            var model = new KeywordTranslation
            {
                LanguageCode = LanguageDefinitions.DefaultLanguage
            };

            return(View(model));
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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));
        }
Пример #9
0
        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));
        }
Пример #10
0
        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));
        }
Пример #11
0
        public static string GetDefaultKeyword(CultureInfo language, StepDefinitionKeyword keyword)
        {
            KeywordTranslation translation = GetTranslation(language);

            return(translation[keyword].DefaultKeyword);
        }
Пример #12
0
        public static string[] GetKeywords(CultureInfo language, StepDefinitionKeyword keyword)
        {
            KeywordTranslation translation = GetTranslation(language);

            return(translation[keyword].Keywords);
        }