private void SaveNhanVien() { if (Check()) { try { ConnectionUtil.Instance.BeginTransaction(); if (frmNV.isAdd) { //tao ma vach tu ma nhan vien txtMaVach.Text = GtidCryptionEx.EncryptEx(txtMaNhanVien.Text.Trim(), true); int Oid = DmNhanVienDataProvider.Insert(SetNhanVien()); SaveKhoNhanVien(Oid); //note: @All các transaction đòi hỏi phải giải phóng nhanh nên commit hay rollback phải đặt trước các lệnh làm pendding nó ConnectionUtil.Instance.CommitTransaction(); } else { dm.IdNhanVien = frmNV.Oid; DmNhanVienDataProvider.Update(SetNhanVien()); SaveKhoNhanVien(frmNV.Oid); ConnectionUtil.Instance.CommitTransaction(); } } catch (Exception) { ConnectionUtil.Instance.RollbackTransaction(); throw; } } }