//按照时间排序 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; }
//发送一条消息 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(); }
//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; }