private void update_menu()
        {
            F001_Main v_frm = new F001_Main();
            DevExpress.XtraBars.Ribbon.RibbonControl m_rc_menu = v_frm.m_rc_menu;
            List<HT_QUYEN> v_lst_menu = new List<HT_QUYEN>();
            //1. Get list menu
            //Level RibbonPage
            foreach (DevExpress.XtraBars.Ribbon.RibbonPage rp in m_rc_menu.Pages)
            {
                //Level RibbonPageGroup
                foreach (DevExpress.XtraBars.Ribbon.RibbonPageGroup rpg in rp.Groups)
                {
                    //Level BarButtonItem
                    foreach (DevExpress.XtraBars.BarItemLink bbl in rpg.ItemLinks)
                    {
                        HT_QUYEN v_q = new HT_QUYEN()
                        {
                            RIBBON_PAGE_NAME = rp.Name
                            ,
                            RIBBON_PAGE_TEXT = rp.Text
                            ,
                            RIBBON_PAGE_GROUP_NAME = rpg.Name
                            ,
                            RIBBON_PAGE_GROUP_TEXT = rpg.Text
                            ,
                            BAR_BUTTON_ITEM_NAME = bbl.Item.Name
                            ,
                            BAR_BUTTON_ITEM_CAPTION = bbl.Item.Caption
                        };
                        v_lst_menu.Add(v_q);
                    }
                }
            }
            //2. Update database
            using (QuanLyKhoEntities db = new QuanLyKhoEntities())
            {

                List<HT_QUYEN> v_lst_ht_quyen = db.HT_QUYEN.ToList();
                //2.1 Xoa bo di menu trong database ma khong co trong form
                foreach (var q in v_lst_ht_quyen)
                {
                    HT_QUYEN v_q = v_lst_menu.Where(x => x.RIBBON_PAGE_GROUP_NAME == q.RIBBON_PAGE_GROUP_NAME
                        && x.RIBBON_PAGE_NAME == q.RIBBON_PAGE_NAME
                        && x.BAR_BUTTON_ITEM_NAME == q.BAR_BUTTON_ITEM_NAME)
                        .FirstOrDefault();
                    //Neu khong tim thay menu trong form thi xoa menu trong database
                    if (v_q == null)
                    {
                        //Remove ht_phan_quyen
                        List<HT_PHAN_QUYEN> v_lst_phan_quyen = db.HT_PHAN_QUYEN
                            .Where(x => x.ID_QUYEN == q.ID)
                            .ToList();
                        foreach (var pq in v_lst_phan_quyen)
                        {
                            db.HT_PHAN_QUYEN.Remove(pq);
                            db.SaveChanges();
                        }
                        //Remove ht_quyen
                        db.HT_QUYEN.Remove(q);
                        db.SaveChanges();
                        v_lst_ht_quyen = db.HT_QUYEN.ToList();
                    }
                    else
                    {
                        //Neu tim thay thi cap nhat lai caption, text
                        q.RIBBON_PAGE_TEXT = v_q.RIBBON_PAGE_TEXT;
                        q.RIBBON_PAGE_GROUP_TEXT = v_q.RIBBON_PAGE_GROUP_TEXT;
                        q.BAR_BUTTON_ITEM_CAPTION = v_q.BAR_BUTTON_ITEM_CAPTION;
                        db.SaveChanges();
                    }
                }
                v_lst_ht_quyen = db.HT_QUYEN.ToList();
                //2.2 Them vao database nhung menu co trong form nhung chua co trong database
                foreach (var q in v_lst_menu)
                {
                    if (!v_lst_ht_quyen.Exists(x => x.RIBBON_PAGE_GROUP_NAME == q.RIBBON_PAGE_GROUP_NAME
                        && x.RIBBON_PAGE_NAME == q.RIBBON_PAGE_NAME
                        && x.BAR_BUTTON_ITEM_NAME == q.BAR_BUTTON_ITEM_NAME))
                    {
                        db.HT_QUYEN.Add(q);
                        db.SaveChanges();
                        v_lst_ht_quyen = db.HT_QUYEN.ToList();
                    }
                }
            }
        }
Exemplo n.º 2
0
 private void m_cmd_dang_nhap_Click(object sender, EventArgs e)
 {
     using(QuanLyKhoEntities db=new QuanLyKhoEntities())
     {
         var nsd = db.HT_NGUOI_SU_DUNG
             .Where(x => x.TEN_TRUY_CAP == m_txt_ten_dang_nhap.Text
                 && x.MAT_KHAU == m_txt_mat_khau.Text)
             .FirstOrDefault();
         if (nsd!=null)
         {
             Current_User.InitialUser(nsd.ID);
             QuanLyKho.F001_Main v_frm = new F001_Main();
             this.Hide();
             v_frm.display_main_form(this);
         }
         else
         {
             MessageBox.Show("Tên truy cập hoặc mật khẩu không đúng!", "Cảnh báo", MessageBoxButtons.OK);
             m_txt_ten_dang_nhap.Focus();
         }
     }
 }