protected void SaveRecord(bool newRecord)
        {
            // new record / exiting record //

            object oldEntity = null;

            if (newRecord)
            {
                PersonSchool              = new CRM_PersonSchool();
                PersonSchool.IsArchived   = false;
                PersonSchool.CRM_PersonID = Entity.ID;
                db.CRM_PersonSchools.InsertOnSubmit(PersonSchool);
            }
            else
            {
                oldEntity = PersonSchool.ShallowCopy();
            }

            PersonSchool.Telephone  = txtTelephone.Text;
            PersonSchool.Email      = txtEmail.Text;
            PersonSchool.CRM_School = db.CRM_Schools.Single(s => s.Reference.ToString() == ucACSchool.SelectedID);
            PersonSchool.CRM_Role   = db.CRM_Roles.Single(r => r.ID.ToString() == ddlRole.SelectedValue);

            db.SubmitChanges();

            if (oldEntity != null)
            {
                CRM.Code.History.History.RecordLinqUpdate(db, AdminUser, oldEntity, PersonSchool);
                db.SubmitChanges();
            }
            else
            {
                CRM.Code.History.History.RecordLinqInsert(AdminUser, PersonSchool);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            RunSecurity(CRM.Code.Models.Admin.AllowedSections.NotSet);
            PersonSchool = db.CRM_PersonSchools.SingleOrDefault(c => c.ID.ToString() == Request.QueryString["pid"]);

            btnSubmitChanges.Visible = PermissionManager.CanUpdate;
            if (!PermissionManager.CanAdd && Entity == null)
            {
                Response.Redirect("list.aspx");
            }

            ucNavPerson.Entity = Entity;
            ucLogNotes.INotes  = PersonSchool;

            ucACSchool.EventHandler = lnkSelect_Click;
            ucACSchool.Config       = new AutoCompleteConfig(JSONSet.DataSets.school);

            // buttons //

            btnSubmit.EventHandler        = btnSubmit_Click;
            btnSubmitChanges.EventHandler = btnSubmitChanges_Click;
            btnDelete.EventHandler        = btnDelete_Click;
            btnReinstate.EventHandler     = btnReinstate_Click;
            // Security //

            btnSubmitChanges.Visible = PermissionManager.CanUpdate;
            btnDelete.Visible        = PermissionManager.CanDelete;
            if (!PermissionManager.CanAdd && Entity == null)
            {
                Response.Redirect("list.aspx");
            }

            // confirmations //

            confirmationDelete.StandardDeleteHidden("personal school record", btnRealDelete_Click);

            // process //

            CRMContext = Entity;

            if (!IsPostBack)
            {
                ddlRole.DataSource = CRM_Role.BaseSet(db);
                ddlRole.DataBind();

                if (PersonSchool != null)
                {
                    PopulateFields();
                }
            }
        }