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); }
public static void AddWord(string eng, ICollection <string> chi) { int wid, mid; if (!words.TryGetValue(eng, out wid))//add word { var word = new DBWord() { Letters = eng }; db.Insert(word); words[eng] = wid = word.Id; eles.Add(word.ToStat()); WrongCount += word.wrong + 1; } foreach (var str in chi) { if (!means.TryGetValue(str, out mid))//add meaning { var mean = new DBMeaning() { Meaning = str }; db.Insert(mean); means[str] = mid = mean.Id; eles.Add(mean.ToStat()); WrongCount += mean.wrong + 1; } if (!e2c.Contains(wid, mid)) { db.Insert(new DBTranslation() { Wid = wid, Mid = mid }); e2c.Add(wid, mid); c2e.Add(mid, wid); } } updTimeAll = updTimeDetail = DateTime.Now.Ticks; }
public static void AddWord(string eng, ICollection<string> chi) { int wid, mid; if (!words.TryGetValue(eng, out wid))//add word { var word = new DBWord() { Letters = eng }; db.Insert(word); words[eng] = wid = word.Id; eles.Add(word.ToStat()); WrongCount += word.wrong + 1; } foreach (var str in chi) { if (!means.TryGetValue(str, out mid))//add meaning { var mean = new DBMeaning() { Meaning = str }; db.Insert(mean); means[str] = mid = mean.Id; eles.Add(mean.ToStat()); WrongCount += mean.wrong + 1; } if (!e2c.Contains(wid, mid)) { db.Insert(new DBTranslation() { Wid = wid, Mid = mid }); e2c.Add(wid, mid); c2e.Add(mid, wid); } } updTimeAll = updTimeDetail = DateTime.Now.Ticks; }
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; }
private static bool ReplaceImport(JObject wordJO, JObject meanJO, JObject linkJO, Dictionary<int, short> wwcnt, Dictionary<int, short> mwcnt) { Clear(false); var wMap = new Dictionary<int, int>(); var mMap = new Dictionary<int, int>(); { var ws = new DBWord[wordJO.Count]; var ids = new int[wordJO.Count]; int a = 0, tid; short wcnt; foreach (var jp in wordJO) { ws[a] = new DBWord() { Letters = jp.Key.ToLower() }; if (wwcnt.TryGetValue(tid = jp.Value.ToInt(), out wcnt)) ws[a].wrong = wcnt; ids[a++] = tid; } db.InsertAll(ws); a = 0; foreach (var w in ws) wMap.Add(ids[a++], w.Id); } { var ms = new DBMeaning[meanJO.Count]; var ids = new int[meanJO.Count]; int a = 0, tid; short wcnt; foreach (var jp in meanJO) { ms[a] = new DBMeaning() { Meaning = jp.Key.ToLower() }; if (mwcnt.TryGetValue(tid = jp.Value.ToInt(), out wcnt)) ms[a].wrong = wcnt; ids[a++] = jp.Value.ToInt(); } db.InsertAll(ms); a = 0; foreach (var m in ms) mMap.Add(ids[a++], m.Id); } { var ts = new List<DBTranslation>(); foreach (var jp in linkJO) { int wid = wMap[jp.Key.ToInt()]; foreach (var ji in jp.Value as JArray) ts.Add(new DBTranslation(wid, mMap[ji.ToInt()])); } db.InsertAll(ts); } Init(); return true; }
private static bool ReplaceImport(JObject wordJO, JObject meanJO, JObject linkJO, Dictionary <int, short> wwcnt, Dictionary <int, short> mwcnt) { Clear(false); var wMap = new Dictionary <int, int>(); var mMap = new Dictionary <int, int>(); { var ws = new DBWord[wordJO.Count]; var ids = new int[wordJO.Count]; int a = 0, tid; short wcnt; foreach (var jp in wordJO) { ws[a] = new DBWord() { Letters = jp.Key.ToLower() }; if (wwcnt.TryGetValue(tid = jp.Value.ToInt(), out wcnt)) { ws[a].wrong = wcnt; } ids[a++] = tid; } db.InsertAll(ws); a = 0; foreach (var w in ws) { wMap.Add(ids[a++], w.Id); } } { var ms = new DBMeaning[meanJO.Count]; var ids = new int[meanJO.Count]; int a = 0, tid; short wcnt; foreach (var jp in meanJO) { ms[a] = new DBMeaning() { Meaning = jp.Key.ToLower() }; if (mwcnt.TryGetValue(tid = jp.Value.ToInt(), out wcnt)) { ms[a].wrong = wcnt; } ids[a++] = jp.Value.ToInt(); } db.InsertAll(ms); a = 0; foreach (var m in ms) { mMap.Add(ids[a++], m.Id); } } { var ts = new List <DBTranslation>(); foreach (var jp in linkJO) { int wid = wMap[jp.Key.ToInt()]; foreach (var ji in jp.Value as JArray) { ts.Add(new DBTranslation(wid, mMap[ji.ToInt()])); } } db.InsertAll(ts); } Init(); return(true); }