protected override void OnPostApplyResponse()
        {
            if (BodyCommandParameterGroupList.Count == 0)
            {
                return;
            }

            string statusString = BodyCommandParameterGroupList.GetParameterValue("virtualserver_status");

            VirtualServerStatus   = VirtualServerStatusHelper.Parse(statusString);
            ClientId              = BodyCommandParameterGroupList.GetParameterValue <uint>("client_id");
            VirtualServerUniqueId = BodyCommandParameterGroupList.GetParameterValue("virtualserver_unique_identifier");
            VirtualServerId       = BodyCommandParameterGroupList.GetParameterValue <uint>("virtualserver_id");
            ChannelId             = BodyCommandParameterGroupList.GetParameterValue <uint>("client_channel_id");
            ClientDatabaseId      = BodyCommandParameterGroupList.GetParameterValue <uint>("client_database_id");
            ClientNickName        = BodyCommandParameterGroupList.GetParameterValue("client_nickname");
            ClientLoginName       = BodyCommandParameterGroupList.GetParameterValue("client_login_name");
            ClientUniqueId        = BodyCommandParameterGroupList.GetParameterValue("client_unique_identifier");
            ServerPort            = BodyCommandParameterGroupList.GetParameterValue <ushort>("virtualserver_port");
            OriginServerId        = BodyCommandParameterGroupList.GetParameterValue <uint>("client_origin_server_id");
        }
        protected override void FillFrom(string responseText, params object[] additionalStates)
        {
            CommandParameterGroupList list = CommandParameterGroupList.Parse(BodyText);

            if (list.Count == 0)
            {
                return;
            }

            string statusString = list.GetParameterValue("virtualserver_status");

            VirtualServerStatus   = VirtualServerStatusHelper.Parse(statusString);
            ClientId              = list.GetParameterValue <uint>("client_id");
            VirtualServerUniqueId = list.GetParameterValue("virtualserver_unique_identifier");
            VirtualServerId       = list.GetParameterValue <uint>("virtualserver_id");
            ChannelId             = list.GetParameterValue <uint>("client_channel_id");
            ClientDatabaseId      = list.GetParameterValue <uint>("client_database_id");
            ClientNickName        = list.GetParameterValue("client_nickname");
            ClientLoginName       = list.GetParameterValue("client_login_name");
            ClientUniqueId        = list.GetParameterValue("client_unique_identifier");
            ServerPort            = list.GetParameterValue <ushort>("virtualserver_port");
            OriginServerId        = list.GetParameterValue <uint>("client_origin_server_id");
        }
        protected override void OnPostApplyResponse()
        {
            if (BodyCommandParameterGroupList.Count == 0)
            {
                return;
            }

            UniqueId              = BodyCommandParameterGroupList.GetParameterValue("virtualserver_unique_identifier");
            Name                  = BodyCommandParameterGroupList.GetParameterValue("virtualserver_name");
            WelcomeMessage        = BodyCommandParameterGroupList.GetParameterValue("virtualserver_welcomemessage");
            Platform              = BodyCommandParameterGroupList.GetParameterValue("virtualserver_platform");
            Version               = BodyCommandParameterGroupList.GetParameterValue("virtualserver_version");
            MinClientVersion      = BodyCommandParameterGroupList.GetParameterValue("virtualserver_min_client_version");
            PasswordHash          = BodyCommandParameterGroupList.GetParameterValue("virtualserver_password");
            HostMessage           = BodyCommandParameterGroupList.GetParameterValue("virtualserver_hostmessage");
            FileBase              = BodyCommandParameterGroupList.GetParameterValue("virtualserver_filebase");
            HostButtonTooltip     = BodyCommandParameterGroupList.GetParameterValue("virtualserver_hostbutton_tooltip");
            HostButtonUrl         = BodyCommandParameterGroupList.GetParameterValue("virtualserver_hostbutton_url");
            HostBannerUrl         = BodyCommandParameterGroupList.GetParameterValue("virtualserver_hostbanner_url");
            HostBannerGraphicsUrl = BodyCommandParameterGroupList.GetParameterValue("virtualserver_hostbanner_gfx_url");
            DateCreatedUtc        = new DateTime(1970, 1, 1).AddSeconds(BodyCommandParameterGroupList.GetParameterValue <ulong>("virtualserver_created"));

            Id                         = BodyCommandParameterGroupList.GetParameterValue <uint>("virtualserver_id");
            Port                       = BodyCommandParameterGroupList.GetParameterValue <ushort>("virtualserver_port");
            ReservedSlots              = BodyCommandParameterGroupList.GetParameterValue <ushort>("VIRTUALSERVER_RESERVED_SLOTS");
            NumberOfClientsOnline      = BodyCommandParameterGroupList.GetParameterValue <uint>("virtualserver_clientsonline");
            NumberOfQueryClientsOnline = BodyCommandParameterGroupList.GetParameterValue <uint>("virtualserver_queryclientsonline");
            MaximumClientsAllowed      = BodyCommandParameterGroupList.GetParameterValue <uint>("virtualserver_maxclients");
            Uptime                     = TimeSpan.FromSeconds(BodyCommandParameterGroupList.GetParameterValue <uint>("virtualserver_uptime"));
            AutoStart                  = BodyCommandParameterGroupList.GetParameterValue("virtualserver_autostart") == "1";
            MachineId                  = BodyCommandParameterGroupList.GetParameterValue("virtualserver_machine_id");

            AntiFloodPointsTickReduce         = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_antiflood_points_tick_reduce");
            AntiFloodPointsNeededIPBlock      = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_antiflood_points_needed_ip_block");
            AntiFloodPointsNeededCommandBlock = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_antiflood_points_needed_command_block");

            LogClient       = BodyCommandParameterGroupList.GetParameterValue("virtualserver_log_client") == "1";
            LogQuery        = BodyCommandParameterGroupList.GetParameterValue("virtualserver_log_query") == "1";
            LogChannel      = BodyCommandParameterGroupList.GetParameterValue("virtualserver_log_channel") == "1";
            LogPermission   = BodyCommandParameterGroupList.GetParameterValue("virtualserver_log_permissions") == "1";
            LogServer       = BodyCommandParameterGroupList.GetParameterValue("virtualserver_log_server") == "1";
            LogFiletransfer = BodyCommandParameterGroupList.GetParameterValue("virtualserver_log_filetransfer") == "1";

            string statusString = BodyCommandParameterGroupList.GetParameterValue("virtualserver_status");

            ServerStatus = VirtualServerStatusHelper.Parse(statusString);
            FileTransferBandwidthSent        = BodyCommandParameterGroupList.GetParameterValue <ulong>("CONNECTION_FILETRANSFER_BANDWIDTH_SENT");
            FileTransferBandwidthReceived    = BodyCommandParameterGroupList.GetParameterValue <ulong>("CONNECTION_FILETRANSFER_BANDWIDTH_RECEIVED");
            AmountOfPacketsSendTotal         = BodyCommandParameterGroupList.GetParameterValue <ulong>("CONNECTION_PACKETS_SENT_TOTAL");
            AmountOfPacketsReceivedTotal     = BodyCommandParameterGroupList.GetParameterValue <ulong>("CONNECTION_PACKETS_RECEIVED_TOTAL");
            AmountOfBytesSendTotal           = BodyCommandParameterGroupList.GetParameterValue <ulong>("CONNECTION_BYTES_SENT_TOTAL");
            AmountOfBytesReceivedTotal       = BodyCommandParameterGroupList.GetParameterValue <ulong>("CONNECTION_BYTES_RECEIVED_TOTAL");
            BandWidthSentLastSecondTotal     = BodyCommandParameterGroupList.GetParameterValue <ulong>("CONNECTION_BANDWIDTH_SENT_LAST_SECOND_TOTAL");
            BandWidthReceivedLastSecondTotal = BodyCommandParameterGroupList.GetParameterValue <ulong>("CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_TOTAL");
            BandWidthSentLastMinuteTotal     = BodyCommandParameterGroupList.GetParameterValue <ulong>("CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_TOTAL");
            BandWidthReceivedLastMinuteTotal = BodyCommandParameterGroupList.GetParameterValue <ulong>("CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_TOTAL");
            PrioritySpeakerDimmModification  = BodyCommandParameterGroupList.GetParameterValue <double>("virtualserver_priority_speaker_dimm_modificator");

            ClientConnections             = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_client_connections");
            QueryClientConnections        = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_query_client_connections");
            DefaultChannelAdminGroupId    = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_default_channel_admin_group");
            DefaultServerGroupId          = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_default_server_group");
            DefaultChannelGroupId         = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_default_channel_group");
            HostBannerGraphicsInterval    = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_hostbanner_gfx_interval");
            ChannelsOnline                = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_channelsonline");
            ComplainAutoBanCount          = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_complain_autoban_count");
            ComplainAutoBanTime           = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_complain_autoban_time");
            ComplainRemoveTime            = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_complain_remove_time");
            MinClientsBeforeForcedSilence = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_min_clients_in_channel_before_forced_silence");
            NeededIdentitySecurityLevel   = BodyCommandParameterGroupList.GetParameterValue <int>("virtualserver_needed_identity_security_level");

            DownloadQuota             = BodyCommandParameterGroupList.GetParameterValue <ulong>("virtualserver_download_quota");
            UploadQuota               = BodyCommandParameterGroupList.GetParameterValue <ulong>("virtualserver_upload_quota");
            MaxDownloadTotalBandwidth = BodyCommandParameterGroupList.GetParameterValue <ulong>("virtualserver_max_download_total_bandwidth");
            MaxUploadTotalBandwidth   = BodyCommandParameterGroupList.GetParameterValue <ulong>("virtualserver_max_upload_total_bandwidth");
            MonthBytesDownloaded      = BodyCommandParameterGroupList.GetParameterValue <ulong>("virtualserver_month_bytes_downloaded");
            MonthBytesUploaded        = BodyCommandParameterGroupList.GetParameterValue <ulong>("virtualserver_month_bytes_uploaded");
            TotalBytesDownloaded      = BodyCommandParameterGroupList.GetParameterValue <ulong>("virtualserver_total_bytes_downloaded");
            TotalBytesUploaded        = BodyCommandParameterGroupList.GetParameterValue <ulong>("virtualserver_total_bytes_uploaded");

            IsPasswordProtected = BodyCommandParameterGroupList.GetParameterValue("virtualserver_flag_password") == "1";
            HostMessageMode     = (HostMessageMode)BodyCommandParameterGroupList.GetParameterValue <uint>("virtualserver_hostmessage_mode");
            PhoneticName        = BodyCommandParameterGroupList.GetParameterValue("virtualserver_name_phonetic");
            IconId = BodyCommandParameterGroupList.GetParameterValue <uint>("virtualserver_icon_id");
            HostButtonGraphicsUrl = BodyCommandParameterGroupList.GetParameterValue("virtualserver_hostbutton_gfx_url");

            TotalPacketLossSpeech    = BodyCommandParameterGroupList.GetParameterValue <double>("virtualserver_total_packetloss_speech");
            TotalPacketLossKeepalive = BodyCommandParameterGroupList.GetParameterValue <double>("virtualserver_total_packetloss_keepalive");
            TotalPacketLossControl   = BodyCommandParameterGroupList.GetParameterValue <double>("virtualserver_total_packetloss_control");
            TotalPacketLossTotal     = BodyCommandParameterGroupList.GetParameterValue <double>("virtualserver_total_packetloss_total");
            TotalPing                      = BodyCommandParameterGroupList.GetParameterValue <double>("virtualserver_total_ping");
            IP                             = BodyCommandParameterGroupList.GetParameterValue("virtualserver_ip");
            WeblistEnabled                 = BodyCommandParameterGroupList.GetParameterValue("virtualserver_weblist_enabled") == "1";
            AskForPrivilegKey              = BodyCommandParameterGroupList.GetParameterValue("virtualserver_ask_for_privilegekey") == "1";
            HostBannerMode                 = (HostBannerMode)BodyCommandParameterGroupList.GetParameterValue <uint>("virtualserver_hostbanner_mode");
            FileTransferBytesSentTotal     = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_filetransfer_bytes_sent_total");
            FileTransferBytesReceivedTotal = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_filetransfer_bytes_received_total");
            PacketsSentSpeech              = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_packets_sent_speech");
            BytesSentSpeech                = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_bytes_sent_speech");
            PacketsReceivedSpeech          = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_packets_received_speech");
            BytesReceivedSpeech            = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_bytes_received_speech");
            PacketsSentKeepAlive           = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_packets_sent_keepalive");
            BytesSentKeepAlive             = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_bytes_sent_keepalive");
            PacketsReceivedKeepAlive       = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_packets_received_keepalive");
            BytesReceivedKeepAlive         = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_bytes_received_keepalive");
            PacketsSentControl             = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_packets_sent_control");
            BytesSentControl               = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_bytes_sent_control");
            PacketsReceivedControl         = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_packets_received_control");
            BytesReceivedControl           = BodyCommandParameterGroupList.GetParameterValue <ulong>("connection_bytes_received_control");
        }