private void ParseEtymology(EtymologyHtml html) { WordEtymology etymology = (_entities.WordEtymologies.Where(w => w.GreWord.Word == html.Word)).FirstOrDefault(); if (etymology != null) { return; } Regex regex = new Regex(@"<dt.*?><a.*?>" + html.Word + @"(\s+.+)?<.*?dt>.+?<dd.*?>(.+?)</dd>", RegexOptions.Singleline); Match match = regex.Match(html.Html); if (!match.Success) { return; } FireLogMessage("Adding Etymology for Word: " + html.Word); string setymology = match.Groups[2].Value; setymology = Regex.Replace(setymology, "<span.*?>(.+?)</span>", "$1", RegexOptions.Singleline); setymology = Regex.Replace(setymology, "<a.*?>(.+?)</a>", "$1", RegexOptions.Singleline); setymology = CleanText(setymology); etymology = new WordEtymology { GreWord = GetGreWord(html.Word), Etymology = setymology }; _entities.AddToWordEtymologies(etymology); _entities.SaveChanges(); }
private void AddEtymologyHtml(string word, string data) { var sql = from w in _entities.EtymologyHtmls where w.Word.Equals(word) select w; if (sql.Count() == 0) { var mh = new EtymologyHtml() { Word = word, Html = data }; _entities.AddToEtymologyHtmls(mh); _entities.SaveChanges(); } else { sql.First().Html = data; _entities.SaveChanges(); } }