コード例 #1
0
ファイル: AppAPIController.cs プロジェクト: JanOlof/Glostest
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
ファイル: AppAPIController.cs プロジェクト: JanOlof/Glostest
        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);
        }
コード例 #4
0
        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));
        }