public ReceivedMessageForm(TextMessageData textMessageData, UserInfo userInfo) { if (textMessageData == null) { throw new ArgumentNullException("textMessageData", "Something is wrong. TextMessageData should not be null."); } ReceivedTextMessageData = textMessageData; if (userInfo == null) { throw new Exception("Text message received from unknown user"); } ReceivedUserInfo = userInfo; InitializeComponent(); StringBuilder stringBuilder = new StringBuilder("Received message from "); stringBuilder.Append(ReceivedUserInfo.UserName); if (userInfo.LogOnName != ReceivedUserInfo.UserName) { stringBuilder.AppendFormat(" [{0}]", ReceivedUserInfo.LogOnName); } stringBuilder.AppendFormat(" ({0})", ReceivedUserInfo.MachineName); stringBuilder.AppendFormat("{0}at {1}", Environment.NewLine, ReceivedTextMessageData.ReceiptTime); MessegeInfoLabel.Text = stringBuilder.ToString(); MessegeTextBox.Text = ReceivedTextMessageData.Text; }
internal void ProcessUserInfoMessage(UserInfo userInfo, IPAddress remoteIP, bool IsReply) { if (userInfo == null) { return; } lock (UserInfos.SyncRoot) { if (UserInfos[userInfo.IPAddress] == null) { UserInfos[userInfo.IPAddress] = userInfo; NotifyObservers(userInfo); } } if (IsReply == false) { CommMgr.SendCurrentUserInfoMessage(remoteIP, true); } }
private void NotifyObservers(UserInfo userInfo) { lock (Observers) { if (Observers == null || Observers.Count <= 0) { return; } foreach (IObserver observer in Observers) { observer.Notify(userInfo); } } }
private void UpdateMenu(UserInfo userInfo) { DataRow dataRow = SendMenuSourceDataTable.NewRow(); foreach (DataColumn column in SendMenuSourceDataTable.Columns) { if (column == null) { continue; } switch (column.ColumnName) { case IPAddress: { dataRow[IPAddress] = userInfo.IPAddress; } break; case UserName: { dataRow[UserName] = userInfo.UserName; } break; case Group: { dataRow[Group] = userInfo.Group; } break; case MachineName: { dataRow[MachineName] = userInfo.MachineName; } break; case LogOnName: { dataRow[LogOnName] = userInfo.LogOnName; } break; } } SendMenuSourceDataTable.LoadDataRow(dataRow.ItemArray, true); UpdateMemberCount(); }