/// <summary> /// สำหรับลบ record ออกจาก ef รวมทั้งลบลูกที่เกี่ยวข้อง (ถ้ามี) /// </summary> /// <param name="reference"></param> private void _delete(zz_Reference reference) { // ถ้ามี ref ตัวลูก ให้ loop ลบ ref ก่อน... entities.zz_References.DeleteObject(reference); //th20110407 กรณี reference ให้ลบทิ้งเลย ไม่อย่างนั้น จะกรอกรหัสเดิมไม่ได้ ติด Unique Index // reference.IsCancel = true; }
private bool _canDeleteData(zz_Reference reference) { int numChild = (from p in FindAll(reference.RefTypeId) where (p.RefCode == reference.Code) select p.Id).Count(); return(numChild == 0); }
/// <summary> /// What to do before save any edit or newly created record /// </summary> /// <param name="reference"></param> private void _doBeforePost(zz_Reference reference) { if (reference.RefDesc == null) { reference.RefDesc = ""; } reference.UpdateInfo.LogUpdated(CurrentUserName); }
/// <summary> /// What to do when create new reference /// </summary> /// <param name="reference"></param> public void DoNewRecord(int refTypeId, string code, zz_Reference reference) { reference.RefTypeId = refTypeId; reference.Code = _getNewCode(refTypeId, code); //สร้าง reference (ถ้ามี) reference.RefRefTypeId = GetRefRefTypeId(refTypeId); reference.UpdateInfo.LogAdded(CurrentUserName); }
/// <summary> /// prepare data and save to ef, ใช้ทั้ง update และ insert /// </summary> /// <param name="reference"></param> /// <param name="isCreate">ส่ง true ถ้าต้องการ insert</param> public void DoSave(zz_Reference reference, bool isCreate) { if (isCreate) { _add(reference); } _doBeforePost(reference); _validate(reference, isCreate); _save(); }
/// <summary> /// prepare data and delete from ef /// </summary> /// <param name="reference"></param> public void DoDelete(zz_Reference reference) { if (_canDeleteData(reference)) { _delete(reference); _save(); } else { throw new ApplicationException("มีใช้งานอยู่ ลบไม่ได้ค่ะ"); } }
/// <summary> /// ตรวจสอบว่าข้อมูลที่กรอกเข้ามาถูกต้องหรือไม่ /// โดยเป็นส่วนของ logic ที่ไม่สามารถระบุใน metadata ไม่ได้ และไม่ได้ระบุเอาไว้ใน constraint ของ database /// </summary> /// <param name="reference"></param> /// <param name="isCreate"></param> private void _validate(zz_Reference reference, bool isCreate) { var errors = new RulesException <zz_Reference>(); if (reference.RefName == "a") { errors.ErrorFor(x => x.RefName, "a is not allowed..."); } if (errors.Errors.Any()) { throw errors; } }
// // Insert / Delete Method /// <summary> /// สำหรับเพิ่ม record ลง ef /// </summary> /// <param name="reference"></param> private void _add(zz_Reference reference) { entities.zz_References.AddObject(reference); }