コード例 #1
0
ファイル: Program.cs プロジェクト: andrey-kozyrev/LinguaSpace
        private static void ConvertAntonyms(IMeaning meaning, SqlCeConnection conn, Guid meaning_id)
        {
            using (SqlCeCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "INSERT INTO Relations (MeaningId, Relation, Position, WordId) VALUES (@MeaningId, @Relation, @Position, @WordId)";
                cmd.Parameters.Add(new SqlCeParameter("MeaningId", meaning_id));
                cmd.Parameters.Add(new SqlCeParameter("Relation", SqlDbType.NVarChar));
                cmd.Parameters.Add(new SqlCeParameter("Position", SqlDbType.SmallInt));
                cmd.Parameters.Add(new SqlCeParameter("WordId", SqlDbType.UniqueIdentifier));
                cmd.Prepare();

                int position = 0;
                foreach (IWord word in meaning.Antonyms)
                {
                    Console.Write("synonym [{0}]...", word.Text);

                    cmd.Parameters["Relation"].Value = "A";
                    cmd.Parameters["Position"].Value = ++position;
                    cmd.Parameters["WordId"].Value = GetWordId(word, conn);
                    cmd.ExecuteNonQuery();

                    Console.WriteLine("ok");
                }
            }
        }
コード例 #2
0
ファイル: Dump.cs プロジェクト: andrey-kozyrev/LinguaSpace
 protected void Dump(IMeaning meaning)
 {
     Dump(meaning.Translations);
     // Dump(meaning.Synonyms);
     // Dump(meaning.Antonyms);
     Console.Out.WriteLine(meaning.Example);
     Console.Out.WriteLine(meaning.Definition);
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: andrey-kozyrev/LinguaSpace
        private static void ConvertMeaningCategories(IMeaning meaning, SqlCeConnection conn, Guid meaningId)
        {
            using (SqlCeCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "INSERT INTO MeaningsCategories (MeaningId, CategoryId) VALUES (@MeaningId, @CategoryId)";
                cmd.Parameters.Add(new SqlCeParameter("MeaningId", meaningId));
                cmd.Parameters.Add(new SqlCeParameter("CategoryId", SqlDbType.UniqueIdentifier));

                foreach (String category in meaning.Categories)
                {
                    Guid categoryId = GetCategoryId(category, conn);
                    if (categoryId != Guid.Empty)
                    {
                        cmd.Parameters["CategoryId"].Value = categoryId;
                        cmd.ExecuteNonQuery();
                    }
                }
            }
        }
コード例 #4
0
 protected MeaningValidator(IWord word, IMeaning meaning)
 {
     Debug.Assert(word != null);
     this.word = word;
     Debug.Assert(meaning != null);
     this.meaning = meaning;
     Hook(meaning.Translations);
     Hook(meaning.Synonyms);
     Hook(meaning.Antonyms);
     Hook(meaning.Categories);
     Hook(meaning);
 }
コード例 #5
0
 protected internal InsertMeaningWordLookupValidator(IWord parentWord, IMeaning meaning, WordCollection childrenWords, LookupData lookup)
     : base(parentWord, meaning, childrenWords, lookup)
 {
     Validate();
 }
コード例 #6
0
 protected internal InsertMeaningValidator(IWord word, IMeaning meaning)
     : base(word, meaning)
 {
     Validate();
 }
コード例 #7
0
 protected internal EditMeaningWordLookupValidator(IWord parentWord, IMeaning meaning, WordCollection childrenWords, LookupData lookup)
     : base(parentWord, meaning, childrenWords, lookup)
 {
     WordItem item = (WordItem)this.lookup.Data;
     this.originalWord = item.Word;
     Validate();
 }
コード例 #8
0
 protected internal EditMeaningValidator(IWord word, IMeaning meaning, IMeaning meaningOriginal)
     : base(word, meaning)
 {
     Debug.Assert(meaningOriginal != null);
     this.meaningOriginal = meaningOriginal;
     Validate();
 }
コード例 #9
0
 public TranslationItem(String text, IMeaning meaning)
 {
     Debug.Assert(text != null);
     Debug.Assert(meaning != null);
     this.text = text;
     this.meaning = meaning;
 }
コード例 #10
0
ファイル: Classes.cs プロジェクト: andrey-kozyrev/LinguaSpace
 private void VerifyDuplicateItem(IMeaning item)
 {
     Debug.Assert(this.IndexOf(item) < 0);
     if (this.IndexOf(item) >= 0)
     {
         throw new InternalDataException();
     }
 }
コード例 #11
0
ファイル: Classes.cs プロジェクト: andrey-kozyrev/LinguaSpace
 protected override void SetItem(int index, IMeaning item)
 {
     throw new InvalidOperationException();
 }
コード例 #12
0
ファイル: Classes.cs プロジェクト: andrey-kozyrev/LinguaSpace
 protected override void InsertItem(int index, IMeaning item)
 {
     VerifySameVocabulary(item);
     VerifyDuplicateItem(item);
     this.CollectionChanged += new NotifyCollectionChangedEventHandler((item as MeaningImpl).OnMeaningsCollectionChanged);
     base.InsertItem(index, item);
     (item as VocabularyObject).Parent = this.word;
 }
コード例 #13
0
ファイル: Classes.cs プロジェクト: andrey-kozyrev/LinguaSpace
 public IStatistics GetStatistics(IMeaning meaning)
 {
     MeaningImpl meaningImpl = (MeaningImpl)meaning;
     StatisticsImpl statistics = null;
     int index = this.statistics.BinarySearch(0, this.statistics.Count, meaningImpl, new Statistics_vs_MeaningComparer());
     if (index < 0)
     {
         statistics = new StatisticsImpl(this, meaningImpl.Guid);
         this.statistics.Insert(~index, statistics);
     }
     else
     {
         statistics = (StatisticsImpl)this.statistics[index];
     }
     return statistics;
 }
コード例 #14
0
ファイル: Classes.cs プロジェクト: andrey-kozyrev/LinguaSpace
 public IStatistics this[IMeaning meaning]
 {
     get
     {
         return this.GetStatistics(meaning);
     }
 }
コード例 #15
0
        protected IMeaning FindSameMeaning(IMeaning meaning)
        {
            IMeaning same = null;
            foreach (IMeaning m in this.word.Meanings)
            {
                if (m.Translations.Count == meaning.Translations.Count)
                {
                    int i = 0;
                    for (i = 0; i < m.Translations.Count; ++i)
                    {
                        if (m.Translations[i] != meaning.Translations[i])
                        {
                            break;
                        }
                    }

                    if (i >= m.Translations.Count)
                    {
                        same = m;
                        break;
                    }
                }
            }
            return same;
        }
コード例 #16
0
ファイル: Classes.cs プロジェクト: andrey-kozyrev/LinguaSpace
 private void VerifySameVocabulary(IMeaning item)
 {
     Debug.Assert(item.Vocabulary == this.word.Vocabulary);
     if (item.Vocabulary != this.word.Vocabulary)
     {
         throw new InternalDataException();
     }
 }
コード例 #17
0
 protected internal MeaningWordLookupValidator(IWord parentWord, IMeaning meaning, WordCollection childrenWords, LookupData lookup)
     : base(lookup)
 {
     Debug.Assert(parentWord != null);
     Debug.Assert(meaning != null);
     Debug.Assert(childrenWords != null);
     this.parentWord = parentWord;
     this.meaning = meaning;
     this.childrenWords = childrenWords;
 }
コード例 #18
0
ファイル: Program.cs プロジェクト: andrey-kozyrev/LinguaSpace
        private static void ConvertTranslations(IMeaning meaning, SqlCeConnection conn, Guid meaning_id)
        {
            using (SqlCeCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "INSERT INTO Translations (MeaningId, Position, Translation) VALUES (@MeaningId, @Position, @Translation)";
                cmd.Parameters.Add(new SqlCeParameter("MeaningId", meaning_id));
                cmd.Parameters.Add(new SqlCeParameter("Position", SqlDbType.SmallInt));
                cmd.Parameters.Add(new SqlCeParameter("Translation", SqlDbType.NVarChar));
                cmd.Prepare();

                int position = 0;
                foreach (String translation in meaning.Translations)
                {
                    Console.Write("MeaningId [{0}]...", translation);
                    cmd.Parameters["Position"].Value = ++position;
                    cmd.Parameters["Translation"].Value = translation;
                    cmd.ExecuteNonQuery();

                    Console.WriteLine("ok");
                }
            }
        }