public void Add(LanUser user) { UserListItem item = new UserListItem(); item.User = user; this.Items.Add(item); }
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 AddReceivedImageMessage(LanUser from, long id, Image image) { //保存记录 Store.Models.ImageMessage m = new Store.Models.ImageMessage(image); m.FromUserId = from.ID; m.ToUserId = this.OwnerUser.ID; m.OriginPath = ""; m.Flag = true; //默认成功,后面按照失败结果设定为false MessageListItem item = new MessageListItem(); item.ID = id; item.State = MessageState.Received; item.Message = m; item.User = from; item.Save(); AddMessageListItem(from, item); }
private void AddMessageListItem(LanUser from, MessageListItem item) { UserListItem userItem = this[from.ID]; bool bRefresh = false; if (this.SelectedUser == null || from.ID != this.SelectedUser.ID) { //不是当前用户则增加未读数 userItem.UnreadMessageCount++; bRefresh = true; } //移动到第一个 if (this.Items[0] != userItem) { this.Items.Remove(userItem); this.Items.Insert(0, userItem); bRefresh = true; } if (bRefresh) { this.Invalidate(userItem.Bounds); } UserChatControl chatCtrl = userItem.ChatControl; if (chatCtrl == null) { //如果还没表示则先缓存一下 userItem.WaitDisplayMessages.Add(item); } else { chatCtrl.AddMessageItem(item, userItem.UserID == from.ID); } }
public void AddFileReceivingMessage(LanUser from, TransportFile file) { //保存记录 Store.Models.FileMessage m = new Store.Models.FileMessage(); m.FromUserId = from.ID; m.ToUserId = this.OwnerUser.ID; m.OriginFilePath = file.SavePath; m.FileName = Path.GetFileName(file.SavePath); m.FileLength = file.File.Length; m.Flag = true; //默认成功,后面按照失败结果设定为false MessageListItem item = new MessageListItem(); item.ID = file.ID; item.Message = m; item.User = from; item.State = MessageState.Receiving; //保存到数据库 item.Save(); AddMessageListItem(from, item); }
public void AddOrUpdateUser(LanUser user, UpdateState updateState) { if (this.ContainsUser(user)) { UserListItem item = this[user.ID]; if ((updateState & UpdateState.NickName) != 0) { item.Update(); } this.Invalidate(item.Bounds); UserChatControl chatControl = item.ChatControl; if (chatControl != null) { chatControl.Contacter = user; chatControl.SendMessageEnabled = (user.Status != UserStatus.Offline); } if (this.SelectedUser != null && this.SelectedUser.ID == user.ID) { //当前刚好表示着聊天记录则更新 if (chatControl != null) { chatControl.RefreshMessageList(null); } } } else { UserListItem item = new UserListItem(user); item.Save(); this.Items.Add(item); } }
public UserListItem(LanUser user) { this.User = user; }
public bool ContainsUser(LanUser user) { return(this[user.ID] != null); }