protected override void HandleBroadcastServerRemoveRequest(BroadcastServerRemoveRequest packet, MessageOrigin origin) { //TODO: Time complexity please. serverList.Remove(serverList.First(x => x.Value.Secret == packet.secret).Key); packet.Release(); }
public async Task BroadcastServerRemove(ISession session, BroadcastServerRemoveRequest request) { _logger.Verbose( $"Handling {nameof(BroadcastServerRemoveRequest)} " + $"(UserId='{request.UserId}', " + $"UserName='******', " + $"Secret='{request.Secret}')." ); if (session.Secret != request.Secret) { _logger.Warning( $"User sent {nameof(BroadcastServerRemoveRequest)} " + "with an invalid secret " + $"(UserId='{request.UserId}', " + $"UserName='******', " + $"Secret='{request.Secret}', " + $"Expected='{session.Secret}')." ); return; } var server = await _serverRepository.GetServer(request.Secret); if (server == null) { return; } await _serverRepository.RemoveServer(server.Secret); }