public ActionResult GetMsgList(SysMessageFilter filter)
        {
            filter.ToUser = CurrentUser.Id;
            var data = business.GetSysMessageList(filter, out int total);

            return(Json(new TableDataModel(total, data)));
        }
Example #2
0
 public List <SysMessageModel> GetSysMessageList(SysMessageFilter filter, out int total)
 {
     using (DataProvider dp = new DataProvider())
     {
         return(Data.GetSysMessageList(dp, filter, out total));
     }
 }
Example #3
0
        public List <SysMessageModel> GetSysMessageList(DataProvider dp, SysMessageFilter filter, out int total)
        {
            var view = from msg in dp.System_Message
                       join rec in dp.System_MessageReceiver on msg.Id equals rec.MessageId
                       join user in dp.System_User on msg.CreateUser equals user.Id
                       where !msg.IsDel && rec.ToUser == filter.ToUser
                       select
                       new SysMessageModel()
            {
                Id           = msg.Id,
                CreateTime   = msg.CreateTime,
                CreateUser   = msg.CreateUser,
                IsRead       = rec.IsRead,
                MsgContent   = msg.MsgContent,
                SendUserName = user.TrueName,
                MsgTitle     = msg.MsgTitle,
                MsgType      = msg.MsgType,
                ToUser       = rec.ToUser,
                Url          = msg.Url
            };

            if (!string.IsNullOrWhiteSpace(filter.MsgTitle))
            {
                view = view.Where(m => m.MsgTitle.Contains(filter.MsgTitle));
            }
            if (!string.IsNullOrWhiteSpace(filter.MsgType))
            {
                view = view.Where(m => m.MsgType == filter.MsgType);
            }
            if (filter.IsRead != null)
            {
                view = view.Where(m => m.IsRead == filter.IsRead);
            }
            if (filter.BeginTime != null)
            {
                view = view.Where(m => m.CreateTime >= filter.BeginTime);
            }
            if (filter.EndTime != null)
            {
                view = view.Where(m => m.CreateTime <= filter.EndTime);
            }
            total = view.Count();
            return(view.OrderByDescending(m => m.CreateTime).ThenBy(m => m.IsRead).Skip(filter.Skip).Take(filter.PageSize).ToList());
        }