/// <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 } )); }
public override async Task OnConnectedAsync() { var user = await _uidClient.GetLoginUser(); //将同一个人的连接ID绑定到同一个分组,推送时就推送给这个分组 await Groups.AddToGroupAsync(Context.ConnectionId, user.Account); }