internal void UpdateItemOnSendMessage(Store.Models.Message message) { UserListItem userItem = this[message.ToUserId]; //移动到第一个 if (this.Items[0] != userItem) { this.Items.Remove(userItem); this.Items.Insert(0, userItem); } }
public void AddReceivedTextMessage(LanUser from, long id, string message) { Store.Models.Message m = new Store.Models.Message(MessageType.Text); m.FromUserId = from.ID; m.ToUserId = this.OwnerUser.ID; m.Content = message; m.Flag = true; //默认成功,后面按照失败结果设定为false MessageListItem item = new MessageListItem(); item.State = MessageState.Received; item.ID = id; item.Message = m; item.User = from; item.Save(); AddMessageListItem(from, item); }
public void SetMessageResult(string fromUserId, string toUserId, long id, bool success) { string userItemId = fromUserId; if (fromUserId == this.OwnerUser.ID) { //如果是我自己,那么则是发送消息 if (success) { //发送时就按照默认成功的,发送成功的消息可以忽略了 return; } userItemId = toUserId; } UserListItem userItem = this[userItemId]; UserChatControl chatCtrl = userItem.ChatControl; MessageListItem item = null; if (chatCtrl == null) { //如果还没表示则取出来 item = userItem.GetWaitDisplayMessageItem(id); } else { item = chatCtrl.GetMessageItem(id); } Store.Models.Message m = item.Message; m.Flag = success; item.Update(); if (chatCtrl != null && userItemId == this.SelectedUser.ID) { //当前表示着,更新 chatCtrl.Invalidate(); } }
public void SetFileTransportProgress(TransportFile file) { UserListItem userItem = this[file.MAC]; UserChatControl chatCtrl = userItem.ChatControl; MessageListItem item = null; if (chatCtrl == null) { //如果还没表示则取出来 item = userItem.GetWaitDisplayMessageItem(file.ID); } else { item = chatCtrl.GetMessageItem(file.ID); } item.FileTransportedLength = file.TransportedLength; item.FileTransportedSpeed = file.TransportedSpeed; item.Progress = file.Progress; if (file.Progress == 100) { //传输完毕 Store.Models.Message m = item.Message; m.Flag = true; item.Update(); item.State = MessageState.Received; } if (chatCtrl != null && file.MAC == this.SelectedUser.MAC) { //当前表示着,更新 chatCtrl.RefreshMessageList(item); } }