Ejemplo n.º 1
0
        public IDictionary <string, MessageInfo> GetMessageList(string fromuser, string touser)
        {
            var list =
                _service.GetList(m => m.FromUser == fromuser || m.ToUser == touser)
                .OrderByDescending(m => m.AddTime).ToList();

            var messages = from m in list
                           group m by new { m.FromUser, m.ToUser };

            var connList = _connService.GetList();
            var dic      = new Dictionary <string, MessageInfo>();

            foreach (var item in messages)
            {
                var username = item.Key.FromUser == fromuser
                    ? item.Key.ToUser
                    : item.Key.FromUser;
                var conn = connList.FirstOrDefault(c => c.UserName == username);
                if (conn == null)
                {
                    continue;
                }
                var singleOrDefault = item.FirstOrDefault();
                if (singleOrDefault == null)
                {
                    continue;
                }
                var messageInfo = new MessageInfo()
                {
                    UserName     = username,
                    Name         = conn.Name,
                    Content      = singleOrDefault.Content,
                    Avator       = conn.Avator,
                    ConnectionId = conn.ConnectionId
                };
                dic.Add(username, messageInfo);
            }
            return(dic);
        }