Ejemplo n.º 1
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="Id">ID</param>
 /// <param name="Eng">Слово на английском</param>
 /// <param name="Rus">Слово на русском</param>
 /// <param name="MeanE">Значение слова на английском</param>
 /// <param name="MeanR">Значение слова на русском</param>
 /// <param name="MeanRE">Значение русского перевода на аглийском</param>
 /// <param name="MeanRR">Значение русского перевода на русском</param>
 /// <param name="Trans">Транскрипция</param>
 /// <param name="lev">Уровень слова</param>
 /// <param name="Tags">Тэги</param>
 public Word(long Id, string Eng, string tr, string Rus, SpaceYandexEnEn.YandexEnEn MeanE, SpaceYandexEnRu.YandexEnRu MeanR,
             SpaceYandexRuEn.YandexRuEn MeanRE, SpaceYandexRuRu.YandexRuRu MeanRR, int lev, HashSet <string> Tags)
 {
     id           = Id;
     eng          = Eng.ToLower();
     trans        = tr;
     rus          = Rus?.ToLower();
     mean_eng     = MeanE;
     mean_rus     = MeanR;
     mean_rus_eng = MeanRE;
     mean_rus_rus = MeanRR;
     level        = lev;
     tags         = Tags;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Пробует добавить в словарь данное слово на английском
        /// </summary>
        /// <param name="word">Строка, содержащая слово</param>
        /// <returns>Возвращает true, если слово было добавлено</returns>
        private static bool TryToAddEnglishWord(string word)
        {
            if (dictionary.eng_ids.ContainsKey(word))
            {
                return(false);
            }
            try
            {
                string request1 = @"https://dictionary.yandex.net/api/v1/dicservice.json/lookup?key=" + Resources.tr_key + @"&lang=en-en&text=" + word;
                string request2 = @"https://dictionary.yandex.net/api/v1/dicservice.json/lookup?key=" + Resources.tr_key + @"&lang=en-ru&text=" + word;

                string response1 = Methods.Request(request1);
                string response2 = Methods.Request(request2);

                SpaceYandexEnEn.YandexEnEn mean_eng = Methods.DeSerializationObjFromStr <SpaceYandexEnEn.YandexEnEn>(response1);
                SpaceYandexEnRu.YandexEnRu mean_rus = Methods.DeSerializationObjFromStr <SpaceYandexEnRu.YandexEnRu>(response2);

                if (mean_eng.def.Count == 0 && mean_rus.def.Count == 0)
                {
                    return(false);
                }

                Word add_word;
                long add_id = dictionary.GetKeys().Max() + 1;

                if (mean_rus.def.Count > 0 && mean_eng.def.Count == 0)
                {
                    add_word = new Word(add_id, word, mean_rus.def[0].ts, mean_rus.def[0].tr[0].text, mean_eng, mean_rus, null, null, -1, new HashSet <string> {
                        "rus_only", "added"
                    });
                }
                else if (mean_rus.def.Count == 0 && mean_eng.def.Count > 0)
                {
                    add_word = new Word(add_id, word, mean_eng.def[0].ts, null, mean_eng, mean_rus, null, null, -1, new HashSet <string> {
                        "eng_only", "added"
                    });
                }
                else
                {
                    add_word = new Word(add_id, word, mean_eng.def[0].ts, mean_rus.def[0].tr[0].text, mean_eng, mean_rus, null, null, -1, new HashSet <string> {
                        "added"
                    });
                }

                bool add_good = dictionary.AddWord(add_word);
                if (!add_good)
                {
                    return(false);
                }

                dictionary.eng_ids.Add(word, add_id);

                if (add_word.mean_rus != null)
                {
                    bool b = AddRusIds(add_word);
                    if (!b)
                    {
                        add_word.tags.Add("no_in_rus_ids");
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error in adding english word: " + word);
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
                return(false);
            }
        }