public TinTucController() { _get = new NewsBLL(); }
/// <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); }