private bool IsValidFormScreen() { string screen = Request.QueryString["screen"]; return(screen != null && Regex.IsMatch(screen, @"^\d+$") && EntityDB.IDExists(Convert.ToInt32(Request.QueryString["screen"]))); }
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 bool IsValidFormID() { string id = Request.QueryString["id"]; return(id != null && Regex.IsMatch(id, @"^\d+$") && EntityDB.IDExists(Convert.ToInt32(Request.QueryString["id"]))); }