public bool Update(Guid userId, PlayerOptionsData options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } EnsurePlayerExists(userId); var usedNicknames = _state .Where(x => x.UserId != userId) .Select(x => x.Nickname) .ToHashSet(); var validator = new PlayerOptionsValidator(usedNicknames); options.EnsureIsValid(validator); var player = this[userId]; var current = new PlayerOptionsData { Nickname = player.Nickname, Color = player.Color }; if (current == options) { return(false); } player.Nickname = options.Nickname; player.Color = options.Color; return(true); }
public Task UpdateOptions(PlayerOptionsData options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } var command = new UpdatePlayerOptionsCommand { RoomId = _roomId, Options = options }; return(_context.Send(command)); }
public async Task UpdatePlayerOptions(Guid userId, PlayerOptionsData options) { EnsureUserIsOnline(userId); EnsureGameIsNotStarted(); if (!_playerListEditor.Contains(userId)) { return; } var updated = _playerListEditor.Update(userId, options); if (!updated) { return; } var playerUpdated = new PlayerUpdated(_state.RoomId, _playerListEditor[userId]); await _hub.NotifyEverybody(playerUpdated); }
public async Task UpdatePlayerOptions(Guid userId, PlayerOptionsData options) { await _lobby.UpdatePlayerOptions(userId, options); await WriteStateAsync(); }
public Task UpdateOptions(PlayerOptionsData options) { var lobby = EnsureIsInLobby(); return(lobby.UpdatePlayerOptions(_state.UserId, options)); }
public Task UpdateOptions(PlayerOptionsData options) { return(_player.UpdateOptions(options)); }