Пример #1
0
 public TinTucController()
 {
     _get = new NewsBLL();
 }
Пример #2
0
        /// <summary>
        /// 得到详细页的内容列表
        /// </summary>
        /// <param name="loop"></param>
        /// <returns></returns>
        //public List<string> Process(int loop)
        //{
        //    List<string> result = new List<string>();
        //    StringWriter writer = null;
        //    SetValue("pagecount", loop.ToString());
        //    var m = 0;
        //    for (int i = 0; i < loop; i++)
        //    {
        //        m = i + 1;
        //        SetValue("curpage", m.ToString());
        //        writer = new StringWriter();
        //        Process(writer);
        //        result.Add(writer.ToString());
        //    }
        //    return result;
        //}



        private object getNews(Tag tag)
        {
            if (!variables.IsDefined("curpage"))
            {
                throw new TemplateRuntimeException("Process()方法中必须设置curpage变量值", tag.Line, tag.Col);
            }
            string clsid     = ((StringLiteral)tag.AttributeValue("clsid")).Content;
            int    pagesize  = int.Parse(((StringLiteral)tag.AttributeValue("pagesize")).Content);
            int    pagecount = int.Parse(((StringLiteral)tag.AttributeValue("pagecount")).Content);
            string dataId    = ((StringLiteral)tag.AttributeValue("id")).Content;

            int newssort = 1000;//0-空文章,1-新文章,2-图片文章。值为1000时,就全选

            if (tag.AttributeValue("newssort") != null)
            {
                newssort = int.Parse(((StringLiteral)tag.AttributeValue("newssort")).Content);
            }

            var beginData = string.Empty; //查询新闻的开始时间

            if (GetValue("begindate") != null)
            {
                beginData = GetValue("begindate").ToString();
            }
            if (tag.AttributeValue("begindate") != null)
            {
                beginData = ((StringLiteral)tag.AttributeValue("begindate")).Content;
            }
            if (beginData == "now")
            {
                beginData = DateTime.Now.ToString();
            }
            if (beginData == "today")
            {
                beginData = DateTime.Now.ToString("yyyy-MM-dd");
            }
            if (beginData == "mdate")
            {
                beginData = DateTime.Parse(GetValue("newsdate").ToString()).ToString("yyyy-MM-dd");
            }

            object collection = null;
            int    pageIndex  = int.Parse(variables["curpage"].ToString());

            if (!variables.IsDefined("pagecount"))
            {
                SetValue("pagecount", 1);
            }
            if (tag.AttributeValue("week") != null)
            {
                DateTime dt = DateTime.Now;
                if (!DateTime.TryParse(beginData, out dt))
                {
                    dt = DateTime.Now;
                }

                //如果模板里面未定义开始时间,那就以新闻的发布时间作为开始时间
                if (string.IsNullOrEmpty(beginData) && variables.IsDefined("newsdate"))
                {
                    if (!DateTime.TryParse(GetValue("newsdate").ToString(), out dt))
                    {
                        dt = DateTime.Now;
                    }
                }
                int weeknum = (int)dt.DayOfWeek;
                var week    = ((StringLiteral)tag.AttributeValue("week")).Content;
                if (weeknum == 0) //周日
                {
                    switch (week)
                    {
                    case "week0":     //周日
                        beginData = dt.ToString("yyyy-MM-dd");
                        break;

                    case "week1":     //周一
                        beginData = dt.AddDays(-6).ToString("yyyy-MM-dd");
                        break;

                    case "week2":     //周二
                        beginData = dt.AddDays(-5).ToString("yyyy-MM-dd");
                        break;

                    case "week3":     //周三
                        beginData = dt.AddDays(-4).ToString("yyyy-MM-dd");
                        break;

                    case "week4":     //周四
                        beginData = dt.AddDays(-3).ToString("yyyy-MM-dd");
                        break;

                    case "week5":     //周五
                        beginData = dt.AddDays(-2).ToString("yyyy-MM-dd");
                        break;

                    case "week6":     //周六
                        beginData = dt.AddDays(-1).ToString("yyyy-MM-dd");
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    switch (week)
                    {
                    case "week0":     //周日
                        beginData = dt.AddDays(7 - weeknum).ToString("yyyy-MM-dd");
                        break;

                    case "week1":     //周一
                        beginData = dt.AddDays(1 - weeknum).ToString("yyyy-MM-dd");
                        break;

                    case "week2":     //周二
                        beginData = dt.AddDays(2 - weeknum).ToString("yyyy-MM-dd");
                        break;

                    case "week3":     //周三
                        beginData = dt.AddDays(3 - weeknum).ToString("yyyy-MM-dd");
                        break;

                    case "week4":     //周四
                        beginData = dt.AddDays(4 - weeknum).ToString("yyyy-MM-dd");
                        break;

                    case "week5":     //周五
                        beginData = dt.AddDays(5 - weeknum).ToString("yyyy-MM-dd");
                        break;

                    case "week6":     //周六
                        beginData = dt.AddDays(6 - weeknum).ToString("yyyy-MM-dd");
                        break;

                    default:
                        break;
                    }
                }
            }

            NewsBLL newsBll = Factory.BusinessFactory.CreateBll <NewsBLL>();

            PagedResult <News> result = newsBll.GetFrontNewsListIn(pageIndex, pagesize, beginData, beginData, clsid, pagecount > 1 ? 1 : 0, newssort);

            if (result.Result == null)
            {
                SetValue("total", 0);
                collection = new List <News>();
            }
            else
            {
                SetValue("total", result.Result.Count);
                collection = result.Result;
            }
            if (pagecount > 1)
            {
                //数据库真实的总页数
                int pageTotal = result.Total % pagesize > 0 ? result.Total / pagesize + 1 : result.Total / pagesize;
                if (pageTotal > 0 && pageTotal < pagecount)
                {
                    pagecount = pageTotal;
                }
                if (pagecount > int.Parse(variables["pagecount"].ToString()))
                {
                    SetValue("pagecount", pagecount.ToString());
                }
            }

            SetValue(dataId, collection);
            if (!(collection is IEnumerable))
            {
                throw new TemplateRuntimeException("循环中的集合对象必须是enumerable类型或继承至该类型.", tag.Line, tag.Col);
            }
            return(collection);
        }