public static async Task SaveSentence(string sentence, int level) { if (sentence.Length <= 2) { return; } var saved = await SentenceDao.GetByKeyAsync(sentence); if (saved != null) { await SentenceDao.DeleteAsync(saved.Id); await CommonKeywordMappingDao.DeleteAsync(saved.Id); } await SentenceDao.SaveAsync( new Sentence { CreatedTime = DateTime.Now, Key = sentence, LastUsedTime = DateTime.Now }); var savedSentence = await SentenceDao.GetByKeyAsync(sentence); var toSaves = ParticipleProcessor.ParticipleSentence(sentence, savedSentence.Id, level); await CommonKeywordMappingDao.SaveAsync(toSaves); }
public static async Task <IEnumerable <Sentence> > SearchBySentence(string sentence, int level) { var dictionary = Helper.GetDistinctCount(sentence.Trim().ToLowerInvariant().Split(' ')); // remove longer keyword PreProcessOnDictionary(ref dictionary, level); var searchMappings = dictionary.Select(pair => new CommonMapping { Count = pair.Value, Key = pair.Key }); // get keyword mapping result var allResult = await CommonKeywordMappingDao.SearchKeywordMappingsAsync(searchMappings); var allMappings = new List <CommonMapping>(); foreach (var tableResult in allResult) { allMappings.AddRange(tableResult); } // filter all sentence ids that do not contain all keywords. var firstFilter = allMappings.Select(mapping => mapping.Id).Distinct().ToList(); var secondFilter = new List <long>(); firstFilter.ForEach(id => { if (allMappings.Count(mapping => mapping.Id == id) == dictionary.Count) { secondFilter.Add(id); } }); var sentences = await SentenceDao.GetByIdsAsync(secondFilter); // sentence need to contain all longer keywords. var longerKeywords = dictionary.Where(pair => pair.Key.Length > level).ToList(); return(sentences.Where(s => { var notContained = false; foreach (var longerKeyword in longerKeywords) { notContained = !s.Key.Contains(longerKeyword.Key); } return !notContained; })); }
public void addSentence(string strSentence) { if (CommonHelper.checkUnicode(strSentence)) { if (db.A_Sentence.Where(s => s.Sentence == strSentence).ToList().Count == 0) { SentenceDao senDao = new SentenceDao(); senDao.Insert(new A_Sentence() { Sentence = strSentence, SenSearch = strSentence }); } long senId = db.A_Sentence.Where(s => s.Sentence == strSentence).FirstOrDefault().SentenceId; if (db.A_Sen_Mean.Where(s => s.SentenceId == senId).ToList().Count == 0) { senMeanDao.Insert(new A_Sen_Mean() { SentenceId = senId }); } } else { if (db.A_Mean.Where(s => s.MeanContent == strSentence).ToList().Count == 0) { MeanDao senDao = new MeanDao(); String strContentSearch = CommonHelper.convertToUnSign3(strSentence); strContentSearch += ","; strContentSearch += strSentence; senDao.Insert(new A_Mean() { MeanContent = strSentence, ContentSearch = strContentSearch }); } long meanId = db.A_Mean.Where(s => s.MeanContent == strSentence).FirstOrDefault().MeanId; if (db.A_Sen_Mean.Where(s => s.MeanId == meanId).ToList().Count == 0) { senMeanDao.Insert(new A_Sen_Mean() { MeanId = meanId }); } } }
public A_Sen_Mean nextSentence(A_Sen_Mean tblSenMean, int intCountry) { //lay thong tin SentenceId va MeanId tu man hinh var tblSenMeanSearch = db.A_Sen_Mean.Find(tblSenMean.SenMeanId); if (intCountry == 0) { //cap nhat lai ngay Mean MeanDao meanDao = new MeanDao(); meanDao.UpdateTime(meanDao.FindById(tblSenMeanSearch.MeanId.Value)); return(senMeanDao.getListSortByMeanUpdateTime().FirstOrDefault()); } else { //cap nhat lai ngay Sentence SentenceDao senDao = new SentenceDao(); senDao.UpdateTime(senDao.FindById(tblSenMeanSearch.SentenceId.Value)); return(senMeanDao.getListSortBySenUpdateTime().FirstOrDefault()); } }
public static async Task <IEnumerable <Sentence> > GetAllSentence() { return(await SentenceDao.GetAllAsync()); }
public void addSentenceTrans(A_Sen_Mean tblSenMean, string ctrSentenceTrans, int strCountry) { SentenceDao senDao = new SentenceDao(); MeanDao meanDao = new MeanDao(); if (strCountry == 0) { if (db.A_Sentence.Where(s => s.Sentence == ctrSentenceTrans && s.ActiveFlag == 1).ToList().Count == 0) { senDao.Insert(new A_Sentence() { Sentence = ctrSentenceTrans, SenSearch = ctrSentenceTrans }); } //lay thong tin SentenceId va MeanId tu man hinh var tblSenMeanSearch = db.A_Sen_Mean.Find(tblSenMean.SenMeanId); //lay thong tin SentenceId vua insert long senId = db.A_Sentence.Where(s => s.Sentence == ctrSentenceTrans && s.ActiveFlag == 1).FirstOrDefault().SentenceId; if (db.A_Sen_Mean.Where(s => s.SentenceId == senId && s.MeanId == tblSenMeanSearch.MeanId).FirstOrDefault() == null) { tblSenMean = senMeanDao.FindById(tblSenMean.SenMeanId); if (db.A_Sen_Mean.Find(tblSenMean.SenMeanId).SentenceId == null) { tblSenMean.SentenceId = senId; senMeanDao.Update(tblSenMean); } else { senMeanDao.Insert(new A_Sen_Mean() { MeanId = tblSenMean.MeanId, SentenceId = senId }); } } } else { if (db.A_Mean.Where(s => s.MeanContent == ctrSentenceTrans && s.ActiveFlag == 1).ToList().Count == 0) { String strContentSearch = CommonHelper.convertToUnSign3(ctrSentenceTrans); strContentSearch += ","; strContentSearch += ctrSentenceTrans; meanDao.Insert(new A_Mean() { ContentSearch = strContentSearch, MeanContent = ctrSentenceTrans }); } //lay thong tin SentenceId va MeanId tu man hinh var tblSenMeanSearch = db.A_Sen_Mean.Find(tblSenMean.SenMeanId); //lay thong tin SentenceId vua insert long meanId = db.A_Mean.Where(s => s.MeanContent == ctrSentenceTrans && s.ActiveFlag == 1).FirstOrDefault().MeanId; if (db.A_Sen_Mean.Where(s => s.SentenceId == tblSenMeanSearch.SentenceId && s.MeanId == meanId).FirstOrDefault() == null) { tblSenMean = senMeanDao.FindById(tblSenMean.SenMeanId); if (db.A_Sen_Mean.Find(tblSenMean.SenMeanId).MeanId == null) { tblSenMean.MeanId = meanId; senMeanDao.Update(tblSenMean); } else { senMeanDao.Insert(new A_Sen_Mean() { MeanId = meanId, SentenceId = tblSenMean.SentenceId }); } } } }