public override async Task ClientSendJoin(User user) { if (user.UserId == null) { return; } await base.ClientSendJoin(user); if (!SimpleChatStorage.Instance.GroupData.ContainsKey(GroupName)) { SimpleChatStorage.Instance.GroupData.Add(GroupName, new SimpleChatGroupData()); } SimpleChatGroupData groupData = SimpleChatStorage.Instance.GroupData[GroupName]; groupData.Users.Add(user); await Clients.Group(GroupName).BroadcastUsers(GroupName); }
/// <summary> /// Updates the storage and broadcasts it. /// </summary> public async Task ClientSendColor(SimpleChatClientSendColor clientSendColor) { if (!SimpleChatStorage.Instance.GroupData.ContainsKey(GroupName)) { SimpleChatStorage.Instance.GroupData.Add(GroupName, new SimpleChatGroupData()); } SimpleChatGroupData groupData = SimpleChatStorage.Instance.GroupData[GroupName]; User user = groupData.Users.FirstOrDefault(u => u.UserId == clientSendColor.UserId); if (user == null) { user = new User { UserId = clientSendColor.UserId, Color = clientSendColor.Color } } ; else { user.Color = clientSendColor.Color; } await Clients.Group(GroupName).BroadcastUsers(GroupName); }