public void ClientDisconnected(int clientId) { var client = Clients.FirstOrDefault(x => x.Id == clientId); if (client == null) #if DEBUG { throw new Exception("Unknown client disconnected"); } #else { return; } #endif client.Disconnected(); var clientInfo = _clientData[client]; if (clientInfo != null) { var onlineInfo = clientInfo as OnlineClientInformation; if (onlineInfo == null) { return; } _clientData[client] = new OfflineClientInformation { Group = onlineInfo.Group, Id = onlineInfo.Id, Language = onlineInfo.Language, LastSeen = DateTime.Now, OsType = onlineInfo.OsType, UserName = onlineInfo.UserName, OsName = onlineInfo.OsName }; } }
public void OfflineClientInformationMenuItemClicked(MenuItem menuItem, OfflineClientInformation clientInformation) { if (_offlineClientMenuEventHandlers.ContainsKey(menuItem)) { _offlineClientMenuEventHandlers[menuItem].Invoke(this, new OfflineClientMenuItemClickedEventArgs(Application.Current.MainWindow, clientInformation)); } }
public OfflineClientMenuItemClickedEventArgs(Window window, OfflineClientInformation clientInformation) : base(window) { ClientInformation = clientInformation; }