public BaseSendMessage Reply(ReceiveMessage message) { TkDbContext context; if (string.IsNullOrEmpty(ContextName)) { context = DbContextUtil.CreateDefault(); } else { context = DbContextUtil.CreateDbContext(ContextName); } using (EmptyDbDataSource source = new EmptyDbDataSource()) { source.Context = context; string sql = Expression.Execute(Sql, source); SqlSelector.Select(source.Context, source.DataSet, TABLE_NAME, sql); DataTable table = source.DataSet.Tables[TABLE_NAME]; if (table.Rows.Count == 0) { TextSendMessage result = new TextSendMessage(message, EmptyMessage); return(result); } else { NewsSendMessage result = new NewsSendMessage(message); int count = 0; if (fFirstArticles.Count > 0) { foreach (var article in fFirstArticles) { result.Add(article); ++count; } } int maxCount = MAX_COUNT; if (FootArticle != null) { maxCount--; } foreach (DataRow row in table.Rows) { if (++count > maxCount) { break; } Article article = DataRowArticle.CreateArticle(source, row, message); result.Add(article); } if (FootArticle != null) { result.Add(FootArticle); } return(result); } } }
public BaseSendMessage Reply(ReceiveMessage message) { NewsSendMessage result = new NewsSendMessage(message); if (Articles != null) { foreach (var item in Articles) { result.Add(item.CreateArticle()); } } return(result); }