public ActionResult GetPublishInfoForGrid(PublishConditon publishConditon) { var dict = PublishUtils.GetPublishInfoForGrid(this.dbContext, publishConditon); var json = Newtonsoft.Json.JsonConvert.SerializeObject(dict, new CustomNullableDateTimeConverter()); return(Content(json)); }
public static Dictionary <string, object> GetPublishInfoForGrid(EFDbContext dbContext, PublishConditon conditon) { var cdt = conditon; var query = (from p in dbContext.PublishedDetail where p.IsValid == 1 && p.PublishTime >= cdt.beginDate && p.PublishTime <= cdt.endDate && (string.IsNullOrEmpty(cdt.keyWord) ? true : (p.Title.Contains(cdt.keyWord) || p.Content.Contains(cdt.keyWord))) && cdt.status.Contains(p.Status) && cdt.urgencey.Contains(p.Urgency) && cdt.catagory.Contains(p.Catagory) && (cdt.isExpire ? p.ExpirationTime < DateTime.Now : true) &&//过期 (cdt.hasFeedback ? dbContext.Feedback.Where(f => f.PB_ID == p.ID).Count() > 0 : true) select p ); List <PublishedDetail> list = query.OrderByDescending(p => p.PublishTime).Skip((cdt.page - 1) * cdt.rows).Take(cdt.rows).ToList(); var dict = new Dictionary <string, object>(); dict["rows"] = list; dict["total"] = query.Count(); return(dict); }