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
                };
            }
        }
Exemple #2
0
 public void OfflineClientInformationMenuItemClicked(MenuItem menuItem,
                                                     OfflineClientInformation clientInformation)
 {
     if (_offlineClientMenuEventHandlers.ContainsKey(menuItem))
     {
         _offlineClientMenuEventHandlers[menuItem].Invoke(this,
                                                          new OfflineClientMenuItemClickedEventArgs(Application.Current.MainWindow, clientInformation));
     }
 }
Exemple #3
0
 public OfflineClientMenuItemClickedEventArgs(Window window,
                                              OfflineClientInformation clientInformation) : base(window)
 {
     ClientInformation = clientInformation;
 }