示例#1
0
文件: Model.cs 项目: NIZAOMA/nizaoma
 //TODO: edit by wyt所有的私信
 public MessageModel getAllMessage(int id)
 {
     MessageModel m = new MessageModel();
     m.packs = new List<MessagePack>();
     IEnumerable<Message> send = db.Messages.Where(c => c.MFrom == id).Where(d => d.MType == 3);
     IEnumerable<Message> receive = db.Messages.Where(c => c.MTo == id).Where(d => d.MType == 3);
     IEnumerable<Message> mp = send.Union(receive);//找到所有跟我id相关的信息, 3== 私信
     var j = 0;
     int inboxId;
     for (var i = 0; i < mp.Count(); i++)
     {
         inboxId = mp.ToList()[i].MFrom == id ? (mp.ToList()[i].MTo) : (mp.ToList()[i].MFrom);//联系人id
         for (j = 0; j < m.packs.Count(); j++)
         {
             if (m.packs[j].id == inboxId) //已经有和该用户的通讯记录
             {
                 Message mail = mp.ToList()[i];
                 m.packs[j].messages.Add(mail);
                 break;
             }
         }
         if (j == m.packs.Count())//没有和该用户的通讯记录
         {
             Message newM = new Message();
             newM = mp.ToList()[i];
             MessagePack newpack = new MessagePack();
             newpack.id = inboxId;
             newpack.me = db.Users.First(d => d.UID == id);
             newpack.friend = db.Users.Find(inboxId);
             newpack.messages = new List<Message>();
             newpack.messages.Add(newM);
             m.packs.Add(newpack);
         }
     }
     for (var i = 0; i < m.packs.Count(); i++)
     {
         m.packs[i].messages = orderByQTime(m.packs[i].messages);
     }
     return m;
 }