Ejemplo n.º 1
0
        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;
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
 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);
     }
 }
Ejemplo n.º 4
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);
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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);
        }