Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        public BaseSendMessage Reply(ReceiveMessage message)
        {
            NewsSendMessage result = new NewsSendMessage(message);

            if (Articles != null)
            {
                foreach (var item in Articles)
                {
                    result.Add(item.CreateArticle());
                }
            }

            return(result);
        }