private void AddClient()
        {
            bool   success    = false;
            string clientName = tbClientDesc.Text;

            if (tbClientDesc.Text == "" | tbClientCode.Text == "" | tbAccountingCode.Text == "")
            {
                lblAmendError.Text = "Please provide values for the Client Name, Client Code and Accounting Code fields";
            }
            else
            {
                try
                {
                    Client newClient = new Client
                    {
                        CellularNumber = tbCellular.Text != "" ? tbCellular.Text : null,
                        AccountingCode = tbAccountingCode.Text,
                        ClientCode     = tbClientCode.Text.Trim(),
                        ClientName     = tbClientDesc.Text.Trim(),
                        ContactMethod  =
                            ddlPrefContactMethod.SelectedIndex == 0
                                                       ? 4
                                                       : int.Parse(ddlPrefContactMethod.SelectedValue),
                        RangeFrom =
                            tbRangeFrom.Text != "" ? int.Parse(tbRangeFrom.Text) : (int?)null,
                        RangeTo         = tbRangeTo.Text != "" ? int.Parse(tbRangeTo.Text) : (int?)null,
                        Email           = tbEmail.Text != "" ? tbEmail.Text : null,
                        MaxCallDuration =
                            tbMaxDuration.Text != ""
                                                       ? int.Parse(tbMaxDuration.Text)
                                                       : (int?)null,
                        MaxCallPrice =
                            tbMaxPrice.Text != ""
                                                       ? decimal.Parse(tbMaxPrice.Text)
                                                       : (decimal?)null,
                        MaxIntCallDuration =
                            tbMaxIntDuration.Text != ""
                                                       ? int.Parse(tbMaxIntDuration.Text)
                                                       : (int?)null,
                        MaxIntCallPrice =
                            tbMaxIntPrice.Text != ""
                                                       ? decimal.Parse(tbMaxIntPrice.Text)
                                                       : (decimal?)null,
                        LastUpdated = DateTime.Now
                    };
                    using (QCAstServiceClient client = new QCAstServiceClient())
                    {
                        success = client.AddClient(newClient);
                    }
                    if (success)
                    {
                        ClearListAndTextboxes();
                        lblSuccess.Text = string.Format("Client '{0}' has been successfully added.", clientName);
                    }
                    else
                    {
                        lblAmendError.Text = string.Format("The website encountered and error saving Client '{0}'",
                                                           clientName);
                    }
                }
                catch (Exception ex)
                {
                    NotifyWebmasterOfError("Billing", "Client Management AddClient", ex.ToString());
                    lblAmendError.Text =
                        "The website encountered a problem saving the Client. The webmaster has been notified and will be attending to it shortly.";
                }
            }
        }