/// <summary> /// Handles incoming <see cref="UserUpdatePacket"/>s. /// </summary> /// <param name="connectionId">Original connection ID</param> /// <param name="packet">Incoming <see cref="UserUpdatePacket"/></param> private void userUpdatePacketHandler(string connectionId, UserUpdatePacket packet) { User user = packet.User; lock (userStoreLock) { if (userStore.Users.ContainsKey(user.Uuid)) { // Update/replace the user userStore.Users[user.Uuid] = user; } else { // Add the user userStore.Users.Add(user.Uuid, user); } } OnUserChanged?.Invoke(this, new UserChangedEventArgs(user.Uuid, user.LoggedIn, user.DisplayName)); }
/// <summary> /// Update the user /// </summary> public void UpdateUserSignalR(string uidDevice, string userJson) { if (string.IsNullOrEmpty(userJson)) { return; } if (uidDevice == App.UidDevice) { return; } var user = JsonConvert.DeserializeObject <UserDTO>(userJson); if (user != null) { App.CurrentUserEnvironment.User = user; if (_dispatcherService != null) { _dispatcherService.Invoke(() => { OnUserChanged?.Invoke(null, null); }); } } }
private void _treeViewUsers_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { OnUserChanged?.Invoke(e.Node.Tag); }