示例#1
0
            public static DictionaryStore Load(string xmlPath)
            {
                var entriesByKanji   = new Dictionary <string, List <DictionaryEntry> >();
                var entriesByReading = new Dictionary <string, List <DictionaryEntry> >();

                foreach (var entry in DictionaryXmlReader.ReadEntries(xmlPath))
                {
                    foreach (var kanji in entry.Kanji)
                    {
                        if (!entriesByKanji.TryGetValue(kanji, out var entryList))
                        {
                            entryList = new List <DictionaryEntry>(1);
                            entriesByKanji.Add(kanji, entryList);
                        }
                        entryList.Add(entry);
                    }

                    foreach (var reading in entry.Readings)
                    {
                        if (!entriesByReading.TryGetValue(reading, out var entryList))
                        {
                            entryList = new List <DictionaryEntry>(1);
                            entriesByReading.Add(reading, entryList);
                        }
                        entryList.Add(entry);
                    }
                }
                return(new DictionaryStore(entriesByKanji, entriesByReading));
            }
        public void Save(string key, string value){
            UserModelDifferenceObject userModelDifferenceObject = new QueryUserModelDifferenceObject(_session).GetActiveModelDifference(_applicationName);
            Dictionary dictionary = userModelDifferenceObject.GetCombinedModel();
            DictionaryNode dictionaryNode = new DictionaryXmlReader().ReadFromString(value);

            var dictionary1 = new Dictionary(new DictionaryNode(ApplicationNodeWrapper.NodeName), userModelDifferenceObject.PersistentApplication.Model.Schema);
            dictionary1.RootNode.AddChildNode("Views").AddChildNode(dictionaryNode);
            dictionary.CombineWith(dictionary1);
            userModelDifferenceObject.Model = dictionary.GetDiffs();
            ObjectSpace.FindObjectSpace(userModelDifferenceObject).CommitChanges();
        }
        public void Save(string key, string value)
        {
            UserModelDifferenceObject userModelDifferenceObject = new QueryUserModelDifferenceObject(_session).GetActiveModelDifference(_applicationName);
            Dictionary     dictionary     = userModelDifferenceObject.GetCombinedModel();
            DictionaryNode dictionaryNode = new DictionaryXmlReader().ReadFromString(value);

            var dictionary1 = new Dictionary(new DictionaryNode(ApplicationNodeWrapper.NodeName), userModelDifferenceObject.PersistentApplication.Model.Schema);

            dictionary1.RootNode.AddChildNode("Views").AddChildNode(dictionaryNode);
            dictionary.CombineWith(dictionary1);
            userModelDifferenceObject.Model = dictionary.GetDiffs();
            ObjectSpace.FindObjectSpace(userModelDifferenceObject).CommitChanges();
        }
 private Dictionary loadFromPath(Dictionary dictionary) {
     foreach (var s in GetModelPaths().Where(s => Path.GetFileName(s).ToLower().StartsWith("model") && s.IndexOf(".User") == -1))
     {
         var dictionaryNode = new DictionaryXmlReader().ReadFromFile(s);
         string replace = s.Replace(".xafml", "");
         string aspect = DictionaryAttribute.DefaultLanguage;
         if (replace.IndexOf("_") > -1)
             aspect = replace.Substring(replace.IndexOf("_") + 1);
         dictionary.AddAspect(aspect, dictionaryNode);
     }    
     SaveDifference(dictionary);
     return dictionary;
 }
        public void Model_With_UpDownDotSymbol_Inside_AttributeValue_Is_Valid()
        {
            string ss = "{0:ProductName}<br>{0:Version}<br><br>{0:Copyright}<br><br>{0:Company}<br><br>{0:Description}".XMLEncode();
            string formatStr = "<Application><Views><DetailView><Items><StaticText ID=\"AboutText\" Text=\"" +ss+ "\"/></Items></DetailView></Views></Application>";
            DictionaryNode readFromString = new DictionaryXmlReader().ReadFromString(formatStr);
            var dictionary1 = new Dictionary(readFromString, Schema.GetCommonSchema());
            var differenceObject = Isolate.Fake.Instance<DifferenceObject>(Members.CallOriginal, ConstructorWillBe.Called, Session.DefaultSession);
            differenceObject.Model=dictionary1.Clone();
            differenceObject.Save();

            differenceObject.Reload();

            Assert.AreEqual(dictionary1.RootNode.ToXml(), differenceObject.Model.RootNode.ToXml());
            
        }
示例#6
0
        //private static DictionaryStore _store = LoadStore();

        internal static void Compile()
        {
            // Ensures index backwards compatibility
            var AppLuceneVersion = LuceneVersion.LUCENE_48;

            var indexLocation = @"C:\temp\jmdictindex";

            if (System.IO.Directory.Exists(indexLocation))
            {
                System.IO.Directory.Delete(indexLocation, recursive: true);
            }
            using var dir = FSDirectory.Open(indexLocation);

            //create an analyzer to process the text
            //using var analyzer = new StandardAnalyzer(AppLuceneVersion);
            using var analyzer = new KeywordAnalyzer();

            //create an index writer
            var indexConfig = new IndexWriterConfig(AppLuceneVersion, analyzer);

            using var writer = new IndexWriter(dir, indexConfig);

            int count     = 0;
            var glossType = new FieldType
            {
                IsStored = true,
            };

            foreach (var entry in DictionaryXmlReader.ReadEntries(@"C:\Data\OneDrive\Study & Practice\Japanese\JMdict\JMdict_e.xml"))
            {
                var doc = new Document();

                /*
                 * {
                 *  // StringField indexes but doesn't tokenize
                 *  new StringField("kanji", source.Name, Field.Store.YES),
                 *  new TextField("favoritePhrase", source.FavoritePhrase, Field.Store.YES)
                 * };*/

                foreach (var kanji in entry.Kanji)
                {
                    doc.Add(new TextField("kanji", kanji, Field.Store.YES));
                }

                foreach (var reading in entry.Readings)
                {
                    doc.Add(new TextField("reading", reading, Field.Store.YES));
                }

                foreach (var gloss in entry.Glosses)
                {
                    doc.Add(new Field("gloss", gloss, glossType));
                }

                writer.AddDocument(doc);
                count++;
            }
            writer.Flush(triggerMerge: false, applyAllDeletes: false);

            Console.WriteLine($"Wrote {count} entries to Lucene index");
        }