webforms-phonebook / Phonebook / ModalControl.ascx.cs
ModalControl.ascx.cs
Raw
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Phonebook
{
    public partial class Modal : System.Web.UI.UserControl
    {
        public event EventHandler<EventRefresh> Navigate;
        DataQuery dataquery = new DataQuery();

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        public void show(int ID)
        {
            cacheClear();
            insertContactsLbl.Visible = false;
            updateContactsLbl.Visible = false;

            insId.Text = ID.ToString();
            HF.Value = ID.ToString();
            if (ID > 0)
            {
                updateContactsLbl.Visible = true;
                DataQuery dataquery = new DataQuery();
                DataTable dt = dataquery.getDataById(ID.ToString());
                insId.Text = dt.Rows[0]["ID"].ToString();
                insName.Text = dt.Rows[0]["Name"].ToString();
                insLname.Text = dt.Rows[0]["Lname"].ToString();
                insPhone.Text = dt.Rows[0]["Phone"].ToString();
                insEmail.Text = dt.Rows[0]["email"].ToString();
                RadioButtonList1.SelectedValue = dt.Rows[0]["gentype"].ToString();
                DropDownList1.SelectedValue = dt.Rows[0]["country"].ToString();
                DateTime date = (DateTime)dt.Rows[0]["birthdate"];
                datatextbox.Text = date.ToString("dd/MM/yyyy");
            }
            else { insertContactsLbl.Visible = true; }
            ScriptManager.RegisterStartupScript(Page, Page.GetType(), Guid.NewGuid().ToString(),
            "<script> document.getElementById('myModal').style.display='block'</script>", false);

            UpdatePanel2.Update();
        }

        protected void close_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(Page, Page.GetType(), Guid.NewGuid().ToString(),
            "<script> document.getElementById('myModal').style.display='none'</script>", false);

            cacheClear();

            EventHandler<EventRefresh> handler = Navigate;
            if (handler != null)
            {
                EventRefresh args = new EventRefresh();
                args.Refresh = "Works";
                handler(this, args);
            }
        }

        protected void headClose_Click(object sender, EventArgs e)
        {
            cacheClear();

            ScriptManager.RegisterStartupScript(Page, Page.GetType(), Guid.NewGuid().ToString(),
            "<script> document.getElementById('myModal').style.display='none'</script>", false);

            EventHandler<EventRefresh> handler = Navigate;
            if (handler != null)
            {
                EventRefresh args = new EventRefresh();
                args.Refresh = "Works";
                handler(this, args);
            }
        }

        public void cacheClear()
        {
            string clearDropDown = "";
            insId.Text = string.Empty;
            insName.Text = string.Empty;
            insLname.Text = string.Empty;
            insPhone.Text = string.Empty;
            insEmail.Text = string.Empty;
            DropDownList1.SelectedValue = clearDropDown;
            datatextbox.Text = string.Empty;
            RadioButtonList1.SelectedValue = null;

            errFname.Visible = false;
            errLname.Visible = false;
            errPhone.Visible = false;
            errEmail.Visible = false;
            errCountry.Visible = false;
            errGenderTwo.Visible = false;
            errDateLbl.Visible = false;
        }

        protected void insandupd_Click(object sender, EventArgs e)
        {
            string patternName = @"^([\u0400-\u04FF']{3,100})$|^([a-zA-z ']{3,100})$";
            string patternLname = @"^([\u0400-\u04FF']{3,100})$|^([a-zA-z ']{3,100})$";
            string patternPhone = @"^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$";
            string patternEmail = @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z";
            string patternDate = @"^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[13-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$";

            errFname.Visible = false;
            errLname.Visible = false;
            errPhone.Visible = false;
            errEmail.Visible = false;
            errCountry.Visible = false;
            errDateLbl.Visible = false;
            errGenderTwo.Visible = false;

            //Check first string
            if (Regex.IsMatch(insName.Text, patternName) && Regex.IsMatch(insLname.Text, patternLname) && Regex.IsMatch(insPhone.Text, patternPhone) && Regex.IsMatch(insEmail.Text, patternEmail) && RadioButtonList1.SelectedValue != "" && DropDownList1.SelectedValue != "" && Regex.IsMatch(datatextbox.Text, patternDate))
            {
                string err;
                err = dataquery.insert(Convert.ToInt32(insId.Text), insName.Text, insLname.Text,
                insPhone.Text, insEmail.Text, Convert.ToInt32(RadioButtonList1.SelectedValue), DropDownList1.SelectedValue, datatextbox.Text);

                cacheClear();

                ScriptManager.RegisterStartupScript(Page, Page.GetType(), Guid.NewGuid().ToString(),
                "<script> document.getElementById('myModal').style.display='none'</script>", false);
            }
            else
            {
                if (!Regex.IsMatch(insName.Text, patternName)) { errFname.Visible = true; errFname.ForeColor = Color.OrangeRed; }
                if (!Regex.IsMatch(insLname.Text, patternLname)) { errLname.Visible = true; errLname.ForeColor = Color.OrangeRed; }
                if (!Regex.IsMatch(insPhone.Text, patternPhone)) { errPhone.Visible = true; errPhone.ForeColor = Color.OrangeRed; }
                if (!Regex.IsMatch(insEmail.Text, patternEmail)) { errEmail.Visible = true; errEmail.ForeColor = Color.OrangeRed; }
                if (DropDownList1.SelectedValue == "") { errCountry.Visible = true; errCountry.ForeColor = Color.OrangeRed; }
                if (!Regex.IsMatch(datatextbox.Text, patternDate)) { errDateLbl.Visible = true; errDateLbl.ForeColor = Color.OrangeRed; }
                if (RadioButtonList1.SelectedValue == "") { errGenderTwo.Visible = true; errGenderTwo.ForeColor = Color.OrangeRed; }
            }
            UpdatePanel2.Update();

            EventHandler<EventRefresh> handler = Navigate;
            if (handler != null)
            {
                EventRefresh args = new EventRefresh();
                args.Refresh = "Works";
                handler(this, args);
            }
        }

    }
    // Events (auto refresh)
    public class EventRefresh : EventArgs
    {
        public string Refresh { get; set; }
    }
}