Beispiel #1
0
 //按照时间排序
 public List<Message> orderByQTime(List<Message> info)
 {
     Message temp;
     for (int i = 0; i < info.Count(); i++)
     {
         for (int j = info.Count() - 1; j > i; j--)
         {
             if (info[j].MTime.ToOADate() > info[j - 1].MTime.ToOADate())
             {
                 temp = new Message();
                 temp = info[j];
                 info[j] = info[j - 1];
                 info[j - 1] = temp;
             }
         }
     }
     return info;
 }
Beispiel #2
0
 //发送一条消息
 public void sendMessage(int to, int from, string content, int type)
 {
     Message m = new Message();
     m.MTo = to;
     m.MFrom = from;
     m.MContent = content;
     m.MType = type;
     m.MStatus = "unread";
     db.Messages.Add(m);
     db.SaveChanges();
 }
Beispiel #3
0
 //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;
 }