private void BindDnsRecord(int recordId)
        {
            try
            {
                ViewState["RecordID"] = recordId;

                GlobalDnsRecord record = ES.Services.Servers.GetDnsRecord(recordId);
                if (record != null)
                {
                    ddlRecordType.SelectedValue = record.RecordType;
                    txtRecordName.Text          = record.RecordName;
                    txtRecordData.Text          = record.RecordData;
                    txtMXPriority.Text          = record.MxPriority.ToString();
                    txtSRVPriority.Text         = record.SrvPriority.ToString();
                    txtSRVWeight.Text           = record.SrvWeight.ToString();
                    txtSRVPort.Text             = record.SrvPort.ToString();
                    ipAddress.AddressId         = record.IpAddressId;
                }

                ToggleRecordControls();
            }
            catch (Exception ex)
            {
                HostModule.ShowErrorMessage("GDNS_GET_RECORD", ex);
                return;
            }
        }
        private void SaveRecord()
        {
            GlobalDnsRecord record = new GlobalDnsRecord();

            record.RecordId    = (int)ViewState["RecordID"];
            record.RecordType  = ddlRecordType.SelectedValue;
            record.RecordName  = txtRecordName.Text.Trim();
            record.RecordData  = txtRecordData.Text.Trim();
            record.MxPriority  = Utils.ParseInt(txtMXPriority.Text, 0);
            record.IpAddressId = ipAddress.AddressId;

            if (ServiceIdParam != null)
            {
                record.ServiceId = Utils.ParseInt(Request[ServiceIdParam], 0);
            }
            else if (ServerIdParam != null)
            {
                record.ServerId = Utils.ParseInt(Request[ServerIdParam], 0);
            }
            else if (PackageIdParam != null)
            {
                record.PackageId = Utils.ParseInt(Request[PackageIdParam], 0);
            }

            if (record.RecordId == 0)
            {
                // add record
                try
                {
                    int result = ES.Services.Servers.AddDnsRecord(record);
                    if (result < 0)
                    {
                        HostModule.ShowResultMessage(result);
                        return;
                    }
                }
                catch (Exception ex)
                {
                    HostModule.ShowErrorMessage("GDNS_ADD_RECORD", ex);
                    return;
                }
            }
            else
            {
                // update record
                try
                {
                    int result = ES.Services.Servers.UpdateDnsRecord(record);
                    if (result < 0)
                    {
                        HostModule.ShowResultMessage(result);
                        return;
                    }
                }
                catch (Exception ex)
                {
                    HostModule.ShowErrorMessage("GDNS_UPDATE_RECORD", ex);
                    return;
                }
            }

            // rebind and switch
            BindDnsRecords();
            ShowPanels(false);
        }