public List <WordPairComplexDTO> GetWordtest(int wordGroupId) { List <WordPairComplexDTO> wordList = new List <WordPairComplexDTO>(); SynonymsView viewModel = new SynonymsView(); viewModel.FillViewModel(wordGroupId); string languageCode1 = ""; string languageCode2 = ""; foreach (var viewModelSynonym in viewModel.SortedSynonyms) { WordPairComplexDTO synonym = new WordPairComplexDTO { Id = viewModelSynonym.Id }; wordList.Add(synonym); foreach (var list in viewModelSynonym.SortedWordList) { //Första ordets språk avgör för listan som bara har två språk. Språken är sorterade i bokstavsordning. //Tveksam lösning, men gör appen enklare och funkar väl ok.. Det kan finnas mer än och mindre än två språk vilket inte appen hanterar så väl if (languageCode1 == "") { languageCode1 = list.Value.Language.Code; } else if (languageCode2 == "" && list.Value.Language.Code != languageCode1) { languageCode2 = list.Value.Language.Code; } if (list.Value.Language.Code == languageCode1) { foreach (var word in list.Value.Words) { synonym.Word1.Add(new WordDTO { Id = word.Id, Language = word.Language.Name, LanguageId = word.LanguageId, Text = word.Text }); } } else if (list.Value.Language.Code == languageCode2) { foreach (var word in list.Value.Words) { synonym.Word2.Add(new WordDTO { Id = word.Id, Language = word.Language.Name, LanguageId = word.LanguageId, Text = word.Text }); } } } } return(wordList); }
public ActionResult Index(int wordGroupId = 0) { if (wordGroupId == 0) { return(RedirectToAction("Index", "WordGroups")); } Session["WordGroupId"] = wordGroupId; SynonymsView viewModel = new SynonymsView();//FillViewModel(); viewModel.FillViewModel(wordGroupId); ViewBag.LanguageId = new SelectList(db.Language, "Id", "Name"); return(View(viewModel)); }
public List <WordPairComplexDTO> GetWordtestComplex(int wordGroupId, string languageCode1, string languageCode2) { List <WordPairComplexDTO> wordList = new List <WordPairComplexDTO>(); SynonymsView viewModel = new SynonymsView(); viewModel.FillViewModel(wordGroupId); foreach (var viewModelSynonym in viewModel.SortedSynonyms) { if (ShouldBeIncluded(viewModelSynonym, languageCode1, languageCode2)) { WordPairComplexDTO synonym = new WordPairComplexDTO { Id = viewModelSynonym.Id }; wordList.Add(synonym); foreach (var list in viewModelSynonym.SortedWordList) { if (list.Value.Language.Code == languageCode1) { foreach (var word in list.Value.Words) { synonym.Word1.Add(new WordDTO { Id = word.Id, Language = word.Language.Name, LanguageId = word.LanguageId, Text = word.Text }); } } else if (list.Value.Language.Code == languageCode2) { foreach (var word in list.Value.Words) { synonym.Word2.Add(new WordDTO { Id = word.Id, Language = word.Language.Name, LanguageId = word.LanguageId, Text = word.Text }); } } } } } return(wordList); }
public ActionResult NewWord(SynonymsView synonymsView, int LanguageId, int SynonymId) { int wordGroupId = 0; if (!int.TryParse(Session["WordGroupId"].ToString(), out wordGroupId)) { throw new Exception("Hittar inget grupp Id och kan inte spara ny synonym i gruppen"); } Word word = new Word(); word.LanguageId = LanguageId; word.Text = synonymsView.NewWordText; db.Word.Add(word); db.SaveChanges(); Synonyms synonym = null; synonym = new Synonyms(); if (SynonymId == 0) //Vi lägger till en helt ny grupp synonymer { synonym.SynonymId = GetNewSynonymsId(); db.WordGroupSynonym.Add(new WordGroupSynonym { SynonymId = synonym.SynonymId, WordGroupId = wordGroupId }); db.SaveChanges(); } else { synonym.SynonymId = SynonymId; } synonym.Word = word; db.Synonyms.Add(synonym); db.SaveChanges(); var routeValuesNewQuestion = new RouteValueDictionary(); routeValuesNewQuestion.Add("wordGroupId", wordGroupId.ToString()); return(RedirectToAction("Index", routeValuesNewQuestion)); }