Пример #1
0
        /// <summary>
        /// 获取本人的站内信列表
        /// </summary>
        /// <param name="name">标题</param>
        /// <param name="detail">详情</param>
        /// <param name="unread">只显示未读</param>
        /// <param name="type">类型</param>
        /// <param name="createStart">创建起始时间</param>
        /// <param name="createEnd">创建结束时间</param>
        /// <param name="pageIndex">当前页</param>
        /// <param name="pageSize">每页个数</param>
        /// <returns></returns>
        public async Task <PagedData <PushMessageDTO> > GetMyMessageAsync(
            string name,
            string detail,
            bool unread          = false,
            EnumMessageType?type = null,
            DateTime?createStart = null,
            DateTime?createEnd   = null,
            int pageIndex        = 1,
            int pageSize         = 10)
        {
            var user = await _uidClient.GetLoginUser().ConfigureAwait(false);

            Expression <Func <Message, bool> > exp = o => o.ToUser == user.Account;

            if (unread)
            {
                exp = exp.And(o => o.ReadTime == null);
            }
            if (!string.IsNullOrEmpty(name))
            {
                exp = exp.And(o => o.Name.Contains(name));
            }
            if (!string.IsNullOrEmpty(detail))
            {
                exp = exp.And(o => o.Detail.Contains(detail));
            }
            if (type != null)
            {
                exp = exp.And(o => o.Type == type.Value.ToString());
            }
            if (createStart != null)
            {
                exp.And(o => o.CreateTime >= createStart.Value);
            }
            if (createEnd != null)
            {
                exp.And(o => o.CreateTime < createEnd.Value);
            }

            return(await QueryUtil.FindPageObjectList(
                       exp,
                       o => o.Id,
                       true,
                       pageIndex,
                       pageSize,
                       o => new PushMessageDTO
            {
                Id = o.Id,
                CreateTime = o.CreateTime,
                Detail = o.Detail,
                Name = o.Name,
                ToUser = o.ToUser,
                Type = o.Type,
                ReadTime = o.ReadTime
            }
                       ));
        }