public ActionResult Index(string index = null, string languageId = null) { var languages = _languageBranchRepository.ListEnabled() .Select(lang => new { lang.LanguageID, lang.Name }) .ToArray(); var indices = _indexHelper.GetIndices() .Select(i => i.Index).ToList(); if (String.IsNullOrWhiteSpace(index) || !indices.Contains(index)) { index = indices.FirstOrDefault(); } ViewBag.Indices = indices.Count > 1 ? indices : null; ViewBag.SelectedIndex = index; if (languageId != null) { CurrentLanguage = languageId; } var model = new SynonymsViewModel(CurrentLanguage); foreach (var language in languages) { var name = language.Name; name = String.Concat(name.Substring(0, 1).ToUpper(), name.Substring(1)); model.SynonymsByLanguage.Add(new LanguageSynonyms { Analyzer = Language.GetLanguageAnalyzer(language.LanguageID), LanguageName = name, LanguageId = language.LanguageID, Synonyms = _synonymRepository.GetSynonyms(language.LanguageID, index) .Select(s => { var key = s.From; if (key.Contains("=>")) { key = key.Split(new[] { "=>" }, StringSplitOptions.None)[0].Trim(); } return(new Synonym { From = key, To = s.To, TwoWay = s.TwoWay }); }) .ToList() }); } return(View("~/Views/ElasticSearchAdmin/Synonyms/Index.cshtml", model)); }
private SynonymsViewModel GetModel() { var model = new SynonymsViewModel(CurrentLanguage); foreach (var language in Languages) { var name = language.Value; name = String.Concat(name.Substring(0, 1).ToUpper(), name.Substring(1)); var indexName = SwapLanguage(CurrentIndex, language.Key); model.SynonymsByLanguage.Add(new LanguageSynonyms { Analyzer = Language.GetLanguageAnalyzer(language.Key), LanguageName = name, LanguageId = language.Key, IndexName = indexName, Indices = UniqueIndices, HasSynonymsFile = !String.IsNullOrWhiteSpace(_synonymRepository.GetSynonymsFilePath(language.Key, indexName)), Synonyms = _synonymRepository.GetSynonyms(language.Key, CurrentIndex) .Select(s => { var key = s.From; if (key.Contains("=>")) { key = key.Split(new[] { "=>" }, StringSplitOptions.None)[0].Trim(); } var fromDisplay = String.Join(", ", key.Split(',')); return(new Synonym { From = fromDisplay, To = s.To, TwoWay = s.TwoWay, MultiWord = s.MultiWord }); }) .ToList() }); } return(model); }