コード例 #1
0
        private static bool AddImport(JObject wordJO, JObject meanJO, JObject linkJO)
        {
            var wMap = new Dictionary <int, int>();
            var mMap = new Dictionary <int, int>();
            int tmp;
            var w = new DBWord();

            foreach (var jp in wordJO)
            {
                if (words.TryGetValue(w.Letters = jp.Key.ToLower(), out tmp))
                {
                    wMap.Add(w.Id = jp.Value.ToInt(), tmp);
                }
                else
                {
                    db.Insert(w);
                    wMap.Add(jp.Value.ToInt(), w.Id);
                    words.Add(w.Letters, w.Id);
                    eles.Add(w.ToStat());
                    WrongCount += w.wrong + 1;
                }
            }
            var m = new DBMeaning();

            foreach (var jp in meanJO)
            {
                if (means.TryGetValue(m.Meaning = jp.Key, out tmp))
                {
                    mMap.Add(m.Id = jp.Value.ToInt(), tmp);
                }
                else
                {
                    db.Insert(m);
                    mMap.Add(jp.Value.ToInt(), m.Id);
                    means.Add(m.Meaning, m.Id);
                    eles.Add(m.ToStat());
                    WrongCount += m.wrong + 1;
                }
            }
            var t = new DBTranslation();

            foreach (var jp in linkJO)
            {
                t.Wid = wMap[jp.Key.ToInt()];
                foreach (var ji in jp.Value as JArray)
                {
                    t.Mid = mMap[ji.ToInt()];
                    if (!e2c.Contains(t.Wid, t.Mid))
                    {
                        e2c.Add(t.Wid, t.Mid);
                        c2e.Add(t.Mid, t.Wid);
                        db.Insert(t);
                    }
                }
            }
            updTimeAll = updTimeDetail = DateTime.Now.Ticks;
            return(true);
        }
コード例 #2
0
ファイル: DictService.cs プロジェクト: XZiar/WordsLinks
 private static bool AddImport(JObject wordJO, JObject meanJO, JObject linkJO)
 {
     var wMap = new Dictionary<int, int>();
     var mMap = new Dictionary<int, int>();
     int tmp;
     var w = new DBWord();
     foreach (var jp in wordJO)
     {
         if (words.TryGetValue(w.Letters = jp.Key.ToLower(), out tmp))
             wMap.Add(w.Id = jp.Value.ToInt(), tmp);
         else
         {
             db.Insert(w);
             wMap.Add(jp.Value.ToInt(), w.Id);
             words.Add(w.Letters, w.Id);
             eles.Add(w.ToStat());
             WrongCount += w.wrong + 1;
         }
     }
     var m = new DBMeaning();
     foreach (var jp in meanJO)
     {
         if (means.TryGetValue(m.Meaning = jp.Key, out tmp))
             mMap.Add(m.Id = jp.Value.ToInt(), tmp);
         else
         {
             db.Insert(m);
             mMap.Add(jp.Value.ToInt(), m.Id);
             means.Add(m.Meaning, m.Id);
             eles.Add(m.ToStat());
             WrongCount += m.wrong + 1;
         }
     }
     var t = new DBTranslation();
     foreach (var jp in linkJO)
     {
         t.Wid = wMap[jp.Key.ToInt()];
         foreach (var ji in jp.Value as JArray)
         {
             t.Mid = mMap[ji.ToInt()];
             if (!e2c.Contains(t.Wid, t.Mid))
             {
                 e2c.Add(t.Wid, t.Mid);
                 c2e.Add(t.Mid, t.Wid);
                 db.Insert(t);
             }
         }
     }
     updTimeAll = updTimeDetail = DateTime.Now.Ticks;
     return true;
 }