Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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);
        }