protected void btnSubmit_Click(object sender, EventArgs e) { if (GetUrlParamType() == UrlParamType.View) { maintable.Visible = false; // hide this so that we don't send all the page data (all suburbs, etc) to display before it redirects Response.Redirect(UrlParamModifier.AddEdit(Request.RawUrl, "type", "edit")); } else if (GetUrlParamType() == UrlParamType.Edit) { if (!IsValidFormID()) { HideTableAndSetErrorMessage(); return; } ContactAus contact = ContactAusDB.GetByID(GetFormID()); if (contact == null) { HideTableAndSetErrorMessage("Invalid contact ID"); return; } bool isAddress = contact.ContactType.ContactTypeGroup.ID == 1; bool isTelecoms = contact.ContactType.ContactTypeGroup.ID == 2; bool isBedroom = contact.ContactType.ContactTypeGroup.ID == 3; bool isWeb = contact.ContactType.ContactTypeGroup.ID == 4; bool isMobile = Convert.ToInt32(ddlContactType.SelectedValue) == 30; bool isPOBox = Convert.ToInt32(ddlContactType.SelectedValue) == 37 || Convert.ToInt32(ddlContactType.SelectedValue) == 262; bool isEmail = Convert.ToInt32(ddlContactType.SelectedValue) == 27; bool isWebsite = Convert.ToInt32(ddlContactType.SelectedValue) == 28; txtAddrLine1.Text = txtAddrLine1.Text.Trim(); if (isMobile && !System.Text.RegularExpressions.Regex.Replace(txtAddrLine1.Text, "[^0-9]", "").StartsWith("0")) { SetErrorMessage("Mobile number must start with 0"); return; } if (isTelecoms && System.Text.RegularExpressions.Regex.Replace(txtAddrLine1.Text, "[^0-9]", "").Length > 13) { SetErrorMessage("Phone number can not be more than 13 digits"); return; } if (isEmail && !Utilities.IsValidEmailAddress(txtAddrLine1.Text)) { SetErrorMessage("Invalid email address"); return; } if (isWebsite && !Utilities.IsValidWebURL(txtAddrLine1.Text)) { SetErrorMessage("Invalid website"); return; } if (isPOBox && !Regex.IsMatch(txtAddrLine1.Text, "PO Box", RegexOptions.IgnoreCase) && !Regex.IsMatch(txtAddrLine2.Text, "PO Box", RegexOptions.IgnoreCase)) { SetErrorMessage("The address text must contain \"PO Box\""); return; } ContactAusDB.Update(Convert.ToInt32(lblId.Text), Convert.ToInt32(ddlContactType.SelectedValue), txtFreeText.Text, isTelecoms ? System.Text.RegularExpressions.Regex.Replace(txtAddrLine1.Text, "[^0-9]", "") : txtAddrLine1.Text, txtAddrLine2.Text, txtStreet.Text, isAddress ? Convert.ToInt32(ddlAddressChannelType.SelectedValue) : (contact.AddressChannelType == null ? -1 : contact.AddressChannelType.ID), //isAddress ? Convert.ToInt32(ddlSuburb.SelectedValue) : (contact.Suburb == null ? -1 : contact.Suburb.SuburbID), isAddress ? Convert.ToInt32(suburbID.Value) : (contact.Suburb == null ? -1 : contact.Suburb.SuburbID), isAddress ? Convert.ToInt32(ddlCountry.SelectedValue) : (contact.Country == null ? -1 : contact.Country.ID), contact.Site == null ? Convert.ToInt32(Session["SiteID"]) : contact.Site.SiteID, isAddress || isWeb ? chkIsBilling.Checked : contact.IsBilling, isAddress || isWeb ? chkIsNonBilling.Checked : contact.IsNonBilling); //close this window maintable.Visible = false; // hide this so that we don't send all the page data (all suburbs, etc) to display before it closes bool refresh_on_close = Request.QueryString["refresh_on_close"] != null && Request.QueryString["refresh_on_close"] == "1"; if (refresh_on_close) { Page.ClientScript.RegisterStartupScript(this.GetType(), "close", "<script language=javascript>window.opener.location.href=window.opener.location.href;self.close();</script>"); } else { Page.ClientScript.RegisterStartupScript(this.GetType(), "close", "<script language=javascript>window.returnValue=false;self.close();</script>"); } } else if (GetUrlParamType() == UrlParamType.Add) { if (!IsValidFormID()) { HideTableAndSetErrorMessage(); return; } int entityID = GetFormID(); if (!EntityDB.IDExists(entityID)) { HideTableAndSetErrorMessage("Invalid entity ID"); return; } int contactTypeGroupID = -1; UrlParamContactTypeGroup urlParamContactTypeGroup = GetUrlParamContactTypeGroup(); if (urlParamContactTypeGroup == UrlParamContactTypeGroup.Mailing) { contactTypeGroupID = 1; } else if (urlParamContactTypeGroup == UrlParamContactTypeGroup.Telecoms) { contactTypeGroupID = 2; } else if (urlParamContactTypeGroup == UrlParamContactTypeGroup.Bedroom) { contactTypeGroupID = 3; } else if (urlParamContactTypeGroup == UrlParamContactTypeGroup.Internet) { contactTypeGroupID = 4; } else { HideTableAndSetErrorMessage("Invalid contact_group_type ID"); return; } bool isAddress = contactTypeGroupID == 1; bool isTelecoms = contactTypeGroupID == 2; bool isBedroom = contactTypeGroupID == 3; bool isWeb = contactTypeGroupID == 4; bool isMobile = Convert.ToInt32(ddlContactType.SelectedValue) == 30; bool isPOBox = Convert.ToInt32(ddlContactType.SelectedValue) == 37 || Convert.ToInt32(ddlContactType.SelectedValue) == 262; bool isEmail = Convert.ToInt32(ddlContactType.SelectedValue) == 27; bool isWebsite = Convert.ToInt32(ddlContactType.SelectedValue) == 28; txtAddrLine1.Text = txtAddrLine1.Text.Trim(); if (isMobile && !System.Text.RegularExpressions.Regex.Replace(txtAddrLine1.Text, "[^0-9]", "").StartsWith("0")) { SetErrorMessage("Mobile number must start with 0"); return; } if (isTelecoms && System.Text.RegularExpressions.Regex.Replace(txtAddrLine1.Text, "[^0-9]", "").Length > 13) { SetErrorMessage("Phone number can not be more than 13 digits"); return; } if (isEmail && !Utilities.IsValidEmailAddress(txtAddrLine1.Text)) { SetErrorMessage("Invalid email address"); return; } if (isWebsite && !Utilities.IsValidWebURL(txtAddrLine1.Text)) { SetErrorMessage("Invalid website"); return; } if (isPOBox && !Regex.IsMatch(txtAddrLine1.Text, "PO Box", RegexOptions.IgnoreCase) && !Regex.IsMatch(txtAddrLine2.Text, "PO Box", RegexOptions.IgnoreCase)) { SetErrorMessage("The address text must contain \"PO Box\""); return; } int contactID = ContactAusDB.Insert(entityID, Convert.ToInt32(ddlContactType.SelectedValue), txtFreeText.Text, isTelecoms ? System.Text.RegularExpressions.Regex.Replace(txtAddrLine1.Text, "[^0-9]", "") : txtAddrLine1.Text, txtAddrLine2.Text, txtStreet.Text, isAddress ? Convert.ToInt32(ddlAddressChannelType.SelectedValue) : -1, //isAddress ? Convert.ToInt32(ddlSuburb.SelectedValue) : -1, isAddress ? Convert.ToInt32(suburbID.Value) : -1, isAddress ? Convert.ToInt32(ddlCountry.SelectedValue) : -1, Convert.ToInt32(Session["SiteID"]), isAddress || isWeb ? chkIsBilling.Checked : true, isAddress || isWeb ? chkIsNonBilling.Checked : true); // close this window maintable.Visible = false; // hide this so that we don't send all the page data (all suburbs, etc) to display before it closes bool refresh_on_close = Request.QueryString["refresh_on_close"] != null && Request.QueryString["refresh_on_close"] == "1"; if (refresh_on_close) { Page.ClientScript.RegisterStartupScript(this.GetType(), "close", "<script language=javascript>window.opener.location.href=window.opener.location.href;self.close();</script>"); } else { Page.ClientScript.RegisterStartupScript(this.GetType(), "close", "<script language=javascript>window.returnValue=false;self.close();</script>"); } } else { HideTableAndSetErrorMessage("", "Invalid URL Parameters"); } }
private void FillEmptyAddForm() { string type = "ContactAus"; int contactTypeGroupID = -1; UrlParamContactTypeGroup urlParamContactTypeGroup = GetUrlParamContactTypeGroup(); if (urlParamContactTypeGroup == UrlParamContactTypeGroup.Mailing) { type = "Address"; lblLine1Descr.Text = "Line 1"; contactTypeGroupID = 1; } if (urlParamContactTypeGroup == UrlParamContactTypeGroup.Telecoms) { type = "Phone Number"; lblLine1Descr.Text = "Phone Number"; contactTypeGroupID = 2; } if (urlParamContactTypeGroup == UrlParamContactTypeGroup.Bedroom) { type = "Bedroom"; lblLine1Descr.Text = "Bedroom"; contactTypeGroupID = 3; } if (urlParamContactTypeGroup == UrlParamContactTypeGroup.Internet) { type = "Email/Website"; lblLine1Descr.Text = "Email/Website"; contactTypeGroupID = 4; } lblHeading.Text = "Add " + type; if (contactTypeGroupID != 1) { line2Row.Visible = false; streetRow.Visible = false; suburbRow.Visible = false; countryRow.Visible = false; if (contactTypeGroupID != 4) { billingRow.Visible = false; nonbillingRow.Visible = false; } } DataTable addrTypes = ContactTypeDB.GetDataTable(contactTypeGroupID); ddlContactType.DataSource = addrTypes; ddlContactType.DataBind(); if (urlParamContactTypeGroup == UrlParamContactTypeGroup.Mailing) { // (35, 'Home address'), // (36, 'Business address'), if (GetUrlParamEntityType().Type == EntityType.EntityTypeEnum.Referrer || GetUrlParamEntityType().Type == EntityType.EntityTypeEnum.Organisation || GetUrlParamEntityType().Type == EntityType.EntityTypeEnum.Site) { ddlContactType.SelectedValue = "36"; } else { ddlContactType.SelectedValue = "35"; } } if (urlParamContactTypeGroup == UrlParamContactTypeGroup.Telecoms) { // (34,2,13,'Office Phone'), // (30,2,10,'Mobile'), if (GetUrlParamEntityType().Type == EntityType.EntityTypeEnum.Referrer || GetUrlParamEntityType().Type == EntityType.EntityTypeEnum.Organisation || GetUrlParamEntityType().Type == EntityType.EntityTypeEnum.Site) { ddlContactType.SelectedValue = "34"; } else { ddlContactType.SelectedValue = "30"; } } idRow.Visible = false; btnSubmit.Text = "Add " + type; btnCancel.Visible = true; }