private void dgvDanhSach_Click(object sender, EventArgs e) { String id = dgvDanhSach.SelectedRows[0].Cells["ID"].Value.ToString(); CLuat cl = new CLuat(); MLuat ml = cl.GetByID(id); if (ml != null) { for (int i = 0; i < clbVeTrai.Items.Count; i++) { clbVeTrai.SetItemChecked(i, false); } tbTenLuat.Text = ml.Name; tbMoTaLuat.Text = ml.Description; cbbVePhai.SelectedValue = ml.RightID.ToString(); List <MChiTietLuat> veTrai = ml.ChiTietLuat(); if (veTrai != null && veTrai.Count > 0) { foreach (MChiTietLuat ct in veTrai) { for (int i = 0; i < clbVeTrai.Items.Count; i++) { if (IDList[i].Equals(ct.LeftID.ToString())) { clbVeTrai.SetItemChecked(i, true); break; } } } } } }
public int Update(MLuat luat) { String query = "Update " + tableName + " Set Name=N'" + luat.Name + "', Description=N'" + luat.Description + "', RightID=" + luat.RightID.ToString() + " Where ID=" + luat.ID; return(da.Write(query)); }
public int Insert(MLuat luat) { if (!Exist(luat.Name)) { String query = "Insert Into " + tableName + "(Name) Values(N'" + luat.Name + "',N'" + luat.Description + "'," + luat.RightID.ToString() + ")"; return(da.Write(query)); } else { return(0); } }
/// <summary> /// Suy diễn để chứng minh điều gì đó /// </summary> /// <returns>Nếu tập tìm thấy thì trả về true, ngược lại trả về false</returns> public Boolean SearchCondition(MMenhDe menhDeCanCM) { int demSKDB = 0; int demTLuat = 0; List <MMenhDe> TSKM = new List <MMenhDe>(); while (demSKDB != TSKDB.Count || demTLuat != TLuat.Count) { demSKDB = TSKDB.Count; demTLuat = TLuat.Count; List <int> viTriLuatDaDung = new List <int>(); for (int i = 0; i < TLuat.Count; i++) { MLuat li = TLuat[i]; List <MChiTietLuat> veTrai = li.ChiTietLuat(); Boolean suDungDuoc = true; foreach (MChiTietLuat m in veTrai) { if (!TSKDB.Contains(m.Left())) { suDungDuoc = false; break; } } if (suDungDuoc) { TSKDB.Add(li.Right()); TSKM.Add(li.Right()); viTriLuatDaDung.Add(i); } } if (TSKDB.Contains(menhDeCanCM)) { return(true); } for (int i = viTriLuatDaDung.Count - 1; i >= 0; i--) { TLuat.RemoveAt(viTriLuatDaDung[i]); } } return(false); }
/// <summary> /// Suy diễn tìm tất cả các phương án /// </summary> /// <returns>nếu tập SKDB thay đổi thì trả về true, ngược lại trả về false</returns> public List <MMenhDe> Search() { int demSKDB = 0; int demTLuat = 0; List <MMenhDe> TSKM = new List <MMenhDe>(); while (demSKDB != TSKDB.Count || demTLuat != TLuat.Count) { demSKDB = TSKDB.Count; demTLuat = TLuat.Count; List <int> viTriLuatDaDung = new List <int>(); for (int i = 0; i < TLuat.Count; i++) { MLuat li = TLuat[i]; List <MChiTietLuat> veTrai = li.ChiTietLuat(); Boolean suDungDuoc = true; foreach (MChiTietLuat m in veTrai) { if (TSKDB.FindIndex(item => item.ID == m.Left().ID) == -1) { Console.WriteLine("TEST: " + m.Left().ID); suDungDuoc = false; break; } Console.WriteLine("TEST OUT: " + m.Left().ID); if (suDungDuoc) { TSKDB.Add(li.Right()); TSKM.Add(li.Right()); viTriLuatDaDung.Add(i); break; } } } for (int i = viTriLuatDaDung.Count - 1; i >= 0; i--) { TLuat.RemoveAt(viTriLuatDaDung[i]); } } return(TSKM); }
public List <MLuat> SelectAllList(String condition) { DataTable tb = SelectAll(condition); if (tb != null) { List <MLuat> ds = new List <MLuat>(); foreach (DataRow r in tb.Rows) { MLuat m = new MLuat(); m.ID = int.Parse(r["ID"].ToString()); m.Name = r["Name"].ToString(); m.Description = r["Description"].ToString(); m.RightID = int.Parse(r["RightID"].ToString()); ds.Add(m); } return(ds); } else { return(null); } }
public int Update(int id, String name, String description, int rightID, List <MMenhDe> left) { String query = "Update " + tableName + " Set Name=N'" + name + "', Description=N'" + description + "', RightID=" + rightID + " Where ID=" + id; int dem = da.Write(query); if (dem == 1) { MLuat ml = GetByID(id.ToString()); if (ml != null) { List <MChiTietLuat> dscu = ml.ChiTietLuat(); List <MMenhDe> dsLeftCu = new List <MMenhDe>(); foreach (MChiTietLuat ct in dscu) { dsLeftCu.Add(ct.Left()); } List <MMenhDe> dsThem = new List <MMenhDe>(); List <MMenhDe> dsXoa = new List <MMenhDe>(); foreach (MMenhDe mdc in dsLeftCu) { Boolean found = false; for (int i = 0; i < left.Count; i++) { if (left[i].ID.ToString().Equals(mdc.ID.ToString())) { found = true; } } if (!found) { dsXoa.Add(mdc); } } foreach (MMenhDe mdm in left) { Boolean found = false; for (int i = 0; i < dsLeftCu.Count; i++) { if (dsLeftCu[i].ID.ToString().Equals(mdm.ID.ToString())) { found = true; } } if (!found) { dsThem.Add(mdm); } } CChiTietLuat cct = new CChiTietLuat(); foreach (MMenhDe md in dsXoa) { cct.Delete("RuleID=" + id + " And LeftID=" + md.ID.ToString()); } foreach (MMenhDe md in dsThem) { cct.Insert(id, md.ID); } } } return(dem); }