public ServerOfferResponse Handle(ServerOfferRequest request)
        {
            var socketData = new SocketData(request.Socket, SocketKind.server, request.Address, request.Offer);

            _socketRepository.OnSocketConnected(socketData);

            NotifyAllClients(socketData);

            return(new ServerOfferResponse("Processed"));
        }
        public ClientOfferResponse Handle(ClientOfferRequest request)
        {
            var socketData = new SocketData(request.Socket, SocketKind.client, request.Address, request.Offer);

            _socketRepository.OnSocketConnected(socketData);

            var serverAvailable = _socketRepository.ContainsServer();
            var serverOffer     = _socketRepository.GetServer()?.Offer ?? string.Empty;

            return(new ClientOfferResponse(serverAvailable, serverOffer));
        }