/// <summary>
 /// Kiểm tra và thêm mới Contact
 /// </summary>
 /// <param name="entity">Entity</param>
 /// <returns>Int32: ID của Contact Mới Thêm Vào</returns>
 public static Int32 Add(ContactEntity entity)
 {
     checkLogic(entity);
     checkDuplicate(entity, false);
     checkFK(entity);
     return ContactDAL.Add(entity);
 }
    protected void btnOK_Click(object sender, EventArgs e)
    {
        try
            {
                ContactEntity oContact = new ContactEntity();
                oContact.sHoTen = txtHoTen.Text;
                oContact.sDienThoai = txtDienThoai.Text;
                oContact.sEmail = txtEmail.Text;
                oContact.FK_iChucVuID = Convert.ToInt32(ddlChucVu.SelectedValue);
                oContact.FK_iPhongBanID = Convert.ToInt32(ddlPhong.SelectedValue);
                if (btnOK.CommandName == "Edit")
                {
                    int ContactID = Convert.ToInt32(btnOK.CommandArgument);
                    oContact.PK_iContactID = ContactID;
                    ContactBRL.Edit(oContact);
                    btnOK.CausesValidation = true;
                    lblThongbao.Text = "Cập nhật thành công";
                }
                else
                {
                    int ContactAddID = ContactBRL.Add(oContact);
                    lblThongbao.Text = "Thêm thành công";
                }

                //Nạp lại dữ liệu
                pnAdd.Visible = false;
                napgrvContact();
            }
            catch (Exception ex)
            {
                Response.Write("<script language=\"javascript\">alert('" + ex.Message + "');location='Default.aspx?page=ContactManager';</script>");
            }
    }
 /// <summary>
 /// Kiểm tra và chỉnh sửa Contact
 /// </summary>
 /// <param name="entity">ContactEntity</param>
 /// <returns>bool:kết quả thực hiện</returns>
 public static bool Edit(ContactEntity entity)
 {
     checkExist(entity.PK_iContactID);
     checkLogic(entity);
     checkDuplicate(entity, true);
     checkFK(entity);
     return ContactDAL.Edit(entity);
 }
 /// <summary>
 /// Kiểm tra logic Entity
 /// </summary>
 /// <param name="entity">ContactEntity: entity</param>
 private static void checkLogic(ContactEntity entity)
 {
     if (entity.FK_iPhongBanID < 0)
         throw new Exception(EX_FK_IPHONGBANID_INVALID);
     if (entity.FK_iChucVuID < 0)
         throw new Exception(EX_FK_ICHUCVUID_INVALID);
 }
 /// <summary>
 /// Kiểm tra tồn tại khóa ngoại
 /// </summary>
 /// <param name="entity">ContactEntity:entity</param>
 private static void checkFK(ContactEntity entity)
 {
 }
 /// <summary>
 /// Kiểm tra trùng lặp bản ghi
 /// </summary>
 /// <param name="entity">ContactEntity: ContactEntity</param>
 private static void checkDuplicate(ContactEntity entity,bool checkPK)
 {
     /*
     Example
     List<ContactEntity> list = ContactDAL.GetAll();
     if (list.Exists(
         delegate(ContactEntity oldEntity)
         {
             bool result =oldEntity.FIELD.Equals(entity.FIELD, StringComparison.OrdinalIgnoreCase);
             if(checkPK)
                 result=result && oldEntity.PK_iContactID != entity.PK_iContactID;
             return result;
         }
     ))
     {
         list.Clear();
         throw new Exception(EX_FIELD_EXISTED);
     }
     */
 }