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();
        }
예제 #2
0
        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);
        }