????“???”?????
???????????????????????????????????????????????У??????????????“??”??????????????“?????”??????????????仯????ó????????????????????????????“???”????????????????????????????????ó?????“???????”??
?????????????????ó????????????????????????????????????????????????????????????????????????????? UI ??????????????????棺
????????б??????????????δ??????б??
??????????飺??????????
????????б????
????????????????????????????????????????????????????з?????“???????????”???????????????壬?????????????У?????????????????????????????????????????У????????????????????????????б??????????????????????μ?????仯???????????в??????????е?????????????????????涼????????????????????????????????б?????????????????????????????????????????????????????????“???????(3)”?????“3”???????????????3?Ρ?
??????????????????????Щ????????????????????????????????????????? netfocus ??????????????“????к?”?????????“hello netfocus”?????????????????????????“hello xishuai”????????滹???Щ????????????????????????????????????????????涼????????????????????б?????????????????“????к?(3)”???????????????????????

?????????? netfocus ???????????????????б??????????????????????????????????? Jesse Liu ??? netfocus ???????“????к?”??????????????????????????????????????б?????????????
?????????????????????????????????????
????public async Task<IEnumerable<MessageListDTO>> GetInbox(Contact reader?? PageQuery pageQuery)
????{
????var query = efContext.Context.Set<Message>()
????.Where(new InboxSpecification(reader).GetExpression()).GroupBy(m => new { m.Sender.ID?? m.Title }).Select(m => m.OrderByDescending(order => order.ID).FirstOrDefault());
????int skip = (pageQuery.PageIndex - 1) * pageQuery.PageSize;
????int take = pageQuery.PageSize;
????return await query.SortByDescending(sp => sp.ID).Skip(skip).Take(take)
????.Project().To<MessageListDTO>().ToListAsync();//MessageListDTO ?????汾????????Select FileName????????????
????}
????GetInbox ?? MessageRepository ?е????????????????????????????????????????????????????? Linq ?????????????????????????????????????????????“???XX”????????????????????б?????????????????????????????????????????????????????????????????????????μ???????????
?????????? Linq ??????????“??”?????????????????????? SQL ???????????????????????????????????????ò??????????????????????????????????????t??????????????????????????ò??????????????????????????????????????????????????????????????????????·???????????“???”???
???????????????
????????????仯????????????????????仯??????????????????????????????????????????????????б???????????????????????????????????????????????????????????????????併?????С???????????????????е?????????????????????????????????????????????????????????????
????public async Task<IEnumerable<Message>> GetMessages(Message message?? Contact reader)
????{
????if (message.Recipient.ID == reader.ID)
????{
????return await GetAll(Specification<Message>.Eval(m => m.Title == message.Title
????&& ((m.Sender.ID == message.Sender.ID && m.Recipient.ID == message.Recipient.ID && (m.DisplayType == MessageDisplayType.OutboxAndInbox || m.DisplayType == MessageDisplayType.Inbox))
????|| (m.Recipient.ID == message.Sender.ID && m.Sender.ID == message.Recipient.ID && (m.DisplayType == MessageDisplayType.OutboxAndInbox || m.DisplayType == MessageDisplayType.Outbox))))??
????sp => sp.ID?? SortOrder.Ascending).ToListAsync();
????}
????else
????{
????return await GetAll(Specification<Message>.Eval(m => m.Title == message.Title
????&& ((m.Sender.ID == message.Sender.ID && m.Recipient.ID == message.Recipient.ID && (m.DisplayType == MessageDisplayType.OutboxAndInbox || m.DisplayType == MessageDisplayType.Outbox))
????|| (m.Recipient.ID == message.Sender.ID && m.Sender.ID == message.Recipient.ID && (m.DisplayType == MessageDisplayType.OutboxAndInbox || m.DisplayType == MessageDisplayType.Inbox))))??
????sp => sp.ID?? SortOrder.Ascending).ToListAsync();
????}
????}
??????????????????????????????????δ?????????????μ????????????????????????????????????Щ??????ò???“??????”??UI ?????????ж???Щ??????