/// <summary> /// 命令执行 /// </summary> /// <param name="context"></param> public override void Execute(DataContext context) { byte[] cmdData = context.CmdData; if (cmdData.Length == 0) { context.Flush(RespondCode.CmdDataLack); return; } NewsQuery query = cmdData.ProtoBufDeserialize <NewsQuery>(); if (Compiled.Debug) { query.Debug("=== Material.TodayNews 请求数据 ==="); } PageResult <WsnContent> pageResult = MaterialBiz.GetTodayNewsList(query.QueryIndex, query.QuerySize); NewsList newsList = new NewsList { RecordCount = pageResult.RecordCount, IndexCount = pageResult.PageCount, QueryIndex = pageResult.PageIndex, QuerySize = pageResult.PageSize, DataList = pageResult.Data.Select(n => n.ToNewsBrief()).ToList() }; context.Flush <NewsList>(newsList); }
/// <summary> /// 查询单词翻译结果 /// </summary> /// <param name="context"></param> /// <param name="word"></param> /// <param name="isChinese"></param> /// <param name="part"></param> /// <param name="extendQuery"></param> private static void Query(DataContext context, string word, bool isChinese, DictQuery.ResultPart part, bool extendQuery) { DictRecord dictRecord = MaterialBiz.GetDictRecord(word, isChinese); #region 查询有结果 if (null != dictRecord) { DictResultBasic resultBase = new DictResultBasic { Text = dictRecord.Word.Trim(), PhonicsEn = dictRecord.PhonicsEn.Trim(), PhonicsUs = dictRecord.PhonicsUs.Trim(), AudioEn = dictRecord.AudioEn.Trim().ImageUrlFixed(), AudioUs = dictRecord.AudioUs.Trim().ImageUrlFixed(), Meaning = new List <DictResultPackage>(0), Explication = new List <DictResultPackage>(0), Example = new List <DictResultPackage>(0) }; if ((part == DictQuery.ResultPart.All || part == DictQuery.ResultPart.Meaning) && dictRecord.TransBase != null && dictRecord.TransBase.Length > 0) { resultBase.Meaning = dictRecord.TransBase.ProtoBufDeserialize <List <DictResultPackage> >(); } if ((part == DictQuery.ResultPart.All || part == DictQuery.ResultPart.Explication) && dictRecord.Explication != null && dictRecord.Explication.Length > 0) { resultBase.Explication = dictRecord.Explication.ProtoBufDeserialize <List <DictResultPackage> >(); } if ((part == DictQuery.ResultPart.All || part == DictQuery.ResultPart.Example) && dictRecord.Example != null && dictRecord.Example.Length > 0) { resultBase.Example = dictRecord.Example.ProtoBufDeserialize <List <DictResultPackage> >(); } DictResult result = new DictResult { Basic = resultBase }; context.Flush <DictResult>(result); return; } #endregion #region 查询无结果,需要联想查询 if (extendQuery) { if (isChinese) { #region 中文查询 //分词 List <string> wordList = word.Participle(isChinese).ToList(); if (wordList.Count > 0) { List <DictRecord> extendWords = MaterialBiz.DictC2eExtendQuery(wordList, 20).ToList(); DictResult extendResult = GetExtendDictResult(extendWords); if (null != extendResult) { context.Flush <DictResult>(extendResult); return; } } #endregion } else { #region 英文查询 List <string> wordList = new List <string>(0); if (!word.IsFullEnglish()) { wordList = word.Participle(isChinese).ToList(); } else { wordList = new List <string> { word } }; if (wordList.Count > 0) { List <DictRecord> extendWords = MaterialBiz.DictE2cExtendQueryWithWords(wordList, 20).ToList(); if (extendWords.Count > 0) { DictResult extendResult = GetExtendDictResult(extendWords); if (null != extendResult) { context.Flush <DictResult>(extendResult); return; } } } #endregion } } #endregion #region 查询无结果,并且无需联想查询 context.Flush(); return; #endregion }
/// <summary> /// 命令执行 /// </summary> /// <param name="context"></param> public override void Execute(DataContext context) { context.Flush <Sentence>(MaterialBiz.GetTodaySentence().ToSentence()); }