private ArrayList GetParentOfFunction(ArrayList arr, ArrayList arrAllFunction) { try { ArrayList new_arr = new ArrayList(); Hashtable _hs = new Hashtable(); // lưu những quyền để check sự trùng lặp for (int i = 0; i < arr.Count; i++) { User_FunctionsInfo _info = (User_FunctionsInfo)arr[i]; //if (_info.prid == "0") // continue; //else //{ new_arr.Add(_info); User_FunctionsInfo _tem = new User_FunctionsInfo(_info); BuidlTreeFuction(_tem, arrAllFunction, ref new_arr); //} } return(new_arr); } catch (Exception ex) { CommonData.log.Error(ex.ToString()); return(new ArrayList()); } }
/// <summary> /// lấy function cha từ function con /// </summary> /// <param name="p_ChildItem"></param> /// <param name="arrAllFunction"></param> /// <param name="new_arr"></param> private void BuidlTreeFuction(User_FunctionsInfo p_ChildItem, ArrayList arrAllFunction, ref ArrayList new_arr) { try { foreach (FunctionsInfo _info in arrAllFunction) { if (p_ChildItem.prid == _info.id) { User_FunctionsInfo _User_FunctionsInfo = ConvertToUser_FunctionsInfo(_info); bool t = false; foreach (User_FunctionsInfo item in new_arr) { if (item.functionId == _User_FunctionsInfo.functionId) { t = true; break; } } if (!t) { new_arr.Add(_User_FunctionsInfo); } } } } catch (Exception ex) { CommonData.log.Error(ex.ToString()); } }
/// <summary> /// sắp sếp thằng nào là con thì cho thêm 1 khoảng trắng vào /// </summary> /// <param name="arrAllFunction"></param> /// <param name="p_lang"></param> /// <returns></returns> private ArrayList GetChildofFunction(ArrayList arrAllFunction) { try { ArrayList new_arr = new ArrayList(); string _cach = " "; foreach (User_FunctionsInfo _info in arrAllFunction) { if (_info.prid == "0") { new_arr.Add(_info); User_FunctionsInfo _tem = new User_FunctionsInfo(_info); //Lấy những function con từ function cha BuidlTreeFuction(_tem, _info.functionId.ToString(), arrAllFunction, ref new_arr, _cach); } } return(new_arr); } catch (Exception ex) { ErrorLog.log.Error(ex.ToString()); return(new ArrayList()); } }
private User_RightsInfo ConvertToUser_RightsInfo(User_FunctionsInfo _User_FunctionsInfo, decimal user_id) { try { User_RightsInfo _User_RightsInfo = new User_RightsInfo(); _User_RightsInfo.userid = user_id; _User_RightsInfo.funcid = _User_FunctionsInfo.functionId; _User_RightsInfo.authcode = _User_FunctionsInfo.authcode; return(_User_RightsInfo); } catch (Exception ex) { ErrorLog.log.Error(ex.ToString()); return(null); } }
/// <summary> /// sắp sếp thằng nào là con thì cho thêm 1 khoảng trắng vào /// </summary> /// <param name="arrAllFunction"></param> /// <param name="p_lang"></param> /// <returns></returns> private ArrayList GetChildofFunction(ArrayList arrAllFunction, string p_lang) { ArrayList new_arr = new ArrayList(); string _cach = " "; foreach (User_FunctionsInfo _info in arrAllFunction) { if (_info.prid == "0") { new_arr.Add(_info); User_FunctionsInfo _tem = new User_FunctionsInfo(_info); //Lấy những function con từ function cha BuidlTreeFuction(_tem, _info.functionId.ToString(), arrAllFunction, ref new_arr, _cach, p_lang); } } return(new_arr); }
private User_RightsInfo ConvertToUser_RightsInfo(User_FunctionsInfo _User_FunctionsInfo, decimal user_id) { try { User_RightsInfo _User_RightsInfo = new User_RightsInfo(); _User_RightsInfo.userid = user_id; _User_RightsInfo.funcid = _User_FunctionsInfo.functionId; _User_RightsInfo.authcode = _User_FunctionsInfo.right; _User_RightsInfo.notes = ""; _User_RightsInfo.deleted = 0; _User_RightsInfo.created_by = CommonData.c_Urser_Info.User_Name; _User_RightsInfo.created_date = DateTime.Now; return(_User_RightsInfo); } catch (Exception ex) { CommonData.log.Error(ex.ToString()); return(null); } }
private User_FunctionsInfo ConvertToUser_FunctionsInfo(FunctionsInfo _FunctionsInfo) { try { User_FunctionsInfo _User_FunctionsInfo = new User_FunctionsInfo(); _User_FunctionsInfo.functionId = _FunctionsInfo.id; _User_FunctionsInfo.name = _FunctionsInfo.name; _User_FunctionsInfo.Name_Eng = _FunctionsInfo.Name_Eng; _User_FunctionsInfo.lev = _FunctionsInfo.lev; _User_FunctionsInfo.prid = _FunctionsInfo.prid; _User_FunctionsInfo.last = _FunctionsInfo.last; return(_User_FunctionsInfo); } catch (Exception ex) { CommonData.log.Error(ex.ToString()); return(null); } }
/// <summary> /// /// </summary> /// <param name="p_User_FunctionsInfo">thằng cha</param> /// <param name="p_type"></param> void Check_Is_CheckAll_Right(User_FunctionsInfo p_User_FunctionsInfo, int p_type) { try { bool _ck = true; foreach (User_FunctionsInfo item in c_arrFunction) { // kiểm tra all thằng con của nó if (item.prid == p_User_FunctionsInfo.functionId) { if (p_type == 1 && item.view_right == 0) // view { _ck = false; } } } } catch (Exception ex) { CommonData.log.Error(ex.ToString()); } }
/// <summary> /// Lấy những function con từ function cha /// </summary> private void BuidlTreeFuction(User_FunctionsInfo p_parentItem, string p_parentID, ArrayList arrAllFunction, ref ArrayList new_arr, string cach) { try { foreach (User_FunctionsInfo _info in arrAllFunction) { if (_info.prid == p_parentID) { if (p_parentItem.authcode == 0) { p_parentItem.authcode = _info.authcode; } _info.name = cach + _info.name; new_arr.Add(_info); BuidlTreeFuction(_info, _info.functionId.ToString(), arrAllFunction, ref new_arr, cach + " "); } } } catch (Exception ex) { ErrorLog.log.Error(ex.ToString()); } }
/// <summary> /// Lấy những function con từ function cha /// </summary> private void BuidlTreeFuction(User_FunctionsInfo p_parentItem, string p_parentID, ArrayList arrAllFunction, ref ArrayList new_arr, string cach, string p_lang) { foreach (User_FunctionsInfo _info in arrAllFunction) { if (_info.prid == p_parentID) { if (p_parentItem.use_right == 0) { p_parentItem.use_right = _info.use_right; } if (p_parentItem.view_right == 0) { p_parentItem.view_right = _info.view_right; } if (p_parentItem.insert_right == 0) { p_parentItem.insert_right = _info.insert_right; } if (p_parentItem.update_right == 0) { p_parentItem.update_right = _info.update_right; } if (p_parentItem.delete_right == 0) { p_parentItem.delete_right = _info.delete_right; } if (p_parentItem.approveInfo_right == 0) { p_parentItem.approveInfo_right = _info.approveInfo_right; } _info.name = cach + _info.name; _info.Name_Eng = cach + _info.Name_Eng; new_arr.Add(_info); BuidlTreeFuction(_info, _info.functionId.ToString(), arrAllFunction, ref new_arr, cach + " ", p_lang); } } }
private void Full_Right_Click(object sender, RoutedEventArgs e) { try { int rowselect = grUser_Rights.SelectedIndex; User_FunctionsInfo _User_FunctionsInfo = (User_FunctionsInfo)grUser_Rights.SelectedItem; if (_User_FunctionsInfo.Full_Right == 0) { _User_FunctionsInfo.use_right = 1; _User_FunctionsInfo.view_right = 1; _User_FunctionsInfo.insert_right = 1; _User_FunctionsInfo.update_right = 1; _User_FunctionsInfo.delete_right = 1; _User_FunctionsInfo.approveInfo_right = 1; _User_FunctionsInfo.Full_Right = 1; grUser_Rights.EndInit(); grUser_Rights.Items.Refresh(); } else { chkCheckAll.IsChecked = false; _User_FunctionsInfo.use_right = 0; _User_FunctionsInfo.view_right = 0; _User_FunctionsInfo.insert_right = 0; _User_FunctionsInfo.update_right = 0; _User_FunctionsInfo.delete_right = 0; _User_FunctionsInfo.approveInfo_right = 0; _User_FunctionsInfo.Full_Right = 0; grUser_Rights.EndInit(); grUser_Rights.Items.Refresh(); } if (_User_FunctionsInfo.last == "N") // nếu là cha { #region nếu mà là cha // duyệt tất cả thằng con của nó // thì gán all theo thằng cha foreach (User_FunctionsInfo ufri in c_arrFunction) { if (ufri.prid == _User_FunctionsInfo.functionId) { if (_User_FunctionsInfo.update_right == 1) { ufri.use_right = 1; ufri.view_right = 1; ufri.insert_right = 1; ufri.update_right = 1; ufri.delete_right = 1; ufri.approveInfo_right = 1; } else { ufri.use_right = 0; ufri.view_right = 0; ufri.insert_right = 0; ufri.update_right = 0; ufri.delete_right = 0; ufri.approveInfo_right = 0; } } } #endregion } else { #region nếu mà là con if (_User_FunctionsInfo.Full_Right == 0) { #region nếu bỏ chọn thì bỏ check thằng cha foreach (User_FunctionsInfo ufri in c_arrFunction) { if (ufri.functionId == _User_FunctionsInfo.prid) { ufri.use_right = 0; ufri.view_right = 0; ufri.insert_right = 0; ufri.update_right = 0; ufri.delete_right = 0; ufri.approveInfo_right = 0; break; } } #endregion } else { #region nếu mà chọn thì ktra all thằng con cùng cha vs nó nếu mà all thằng con cùng check thì,thì check thằng cha đó bool _ck_all_view = true; foreach (User_FunctionsInfo ufri in c_arrFunction) { // kiểm tra tất cả thằng con cùng cha vs nó // nếu mà tick hết thì check thằng cha if (ufri.prid == _User_FunctionsInfo.prid) { if (ufri.approveInfo_right == 0 || ufri.use_right == 0 || ufri.view_right == 0 || ufri.insert_right == 0 || ufri.update_right == 0 || ufri.delete_right == 0) { _ck_all_view = false; break; } } } if (_ck_all_view) // nếu mà tất cả thằng con cùng check thì { foreach (User_FunctionsInfo ufri in c_arrFunction) { if (ufri.functionId == _User_FunctionsInfo.prid) { ufri.use_right = 1; ufri.view_right = 1; ufri.insert_right = 1; ufri.update_right = 1; ufri.delete_right = 1; ufri.approveInfo_right = 1; break; } } } #endregion } #endregion } Check_Is_CheckALl(); DataGridHelper.NVSFocus(grUser_Rights, rowselect, (grUser_Rights.CurrentColumn).DisplayIndex); c_change = true; } catch (Exception ex) { CommonData.log.Error(ex.ToString()); } }
private void us_right_Click_1(object sender, RoutedEventArgs e) { try { User_FunctionsInfo _User_FunctionsInfo = (User_FunctionsInfo)gr_Rights.SelectedItem; int rowselect = gr_Rights.SelectedIndex; if (_User_FunctionsInfo.last == "N") // nếu là cha { #region nếu mà là cha // duyệt tất cả thằng con của nó // thì gán all theo thằng cha foreach (User_FunctionsInfo ufri in c_arrFunction) { if (ufri.prid == _User_FunctionsInfo.functionId) { if (_User_FunctionsInfo.authcode == 0) { ufri.authcode = 1; } else { ufri.authcode = 0; } } } #endregion } else { #region nếu mà là con if (_User_FunctionsInfo.authcode == 1) { #region nếu bỏ chọn thì bỏ check thằng cha foreach (User_FunctionsInfo ufri in c_arrFunction) { if (ufri.functionId == _User_FunctionsInfo.prid) { ufri.authcode = 0; break; } } #endregion } else { #region nếu mà chọn thì check all thằng con cùng cha vs nó nếu mà all thằng con cùng check thì,thì check thằng cha đó bool _ck_all_view = true; foreach (User_FunctionsInfo ufri in c_arrFunction) { // kiểm tra tất cả thằng con cùng cha vs nó // nếu mà tick hết thì check thằng cha, không kiểm tra chính thằng đang được chọn if (ufri.prid == _User_FunctionsInfo.prid && ufri.functionId != _User_FunctionsInfo.functionId) { if (ufri.authcode == 0) { _ck_all_view = false; break; } } } if (_ck_all_view) { foreach (User_FunctionsInfo ufri in c_arrFunction) { if (ufri.functionId == _User_FunctionsInfo.prid) { ufri.authcode = 1; break; } } } #endregion } #endregion } if (_User_FunctionsInfo.authcode == 0) { _User_FunctionsInfo.authcode = 1; gr_Rights.EndInit(); gr_Rights.Items.Refresh(); } else { _User_FunctionsInfo.authcode = 0; gr_Rights.EndInit(); gr_Rights.Items.Refresh(); } c_change = true; DataGridHelper.NVSFocus(gr_Rights, rowselect, (gr_Rights.CurrentColumn).DisplayIndex); } catch (Exception ex) { ErrorLog.log.Error(ex.ToString()); } }
void GetFunctionGroupAdd(ArrayList p_arr_new, Hashtable _hs_new_check) { try { #region Lấy thằng function nào đc add mới hoặc bỏ đi // xem những thằng nào được check thêm thì add thêm quyền cho nó ArrayList _funt_add = new ArrayList(); Hashtable _hs_funt_remove = new Hashtable(); foreach (FunctionsInfo item in p_arr_new) { // xem những thằng nào được check thêm thì add thêm quyền cho nó FunctionsInfo _tem = new FunctionsInfo(); _tem = (FunctionsInfo)c_hs_UserRight_First[item.id]; if (_tem == null) { _funt_add.Add(item); } } // xem những thằng nào mà lúc đầu có lúc sau ko có thì xóa quyền của nó đi foreach (FunctionsInfo item in c_hs_UserRight_First.Values) { FunctionsInfo _tem = new FunctionsInfo(); _tem = (FunctionsInfo)_hs_new_check[item.id]; if (_tem == null) { _hs_funt_remove[item.id] = item; } } #endregion #region Xóa quyền cho những function mới thêm vào cho all các user thuộc group đó if (_hs_funt_remove.Count > 0) { foreach (User_Info item_us in DBMemory.c_hash_Users.Values) { ArrayList _arrRightByUser = new ArrayList(); if (item_us.Group_Id == c_GroupUserInfo.Id) { foreach (FunctionsInfo fun in _hs_funt_remove.Values) { _User_RightsController.Delete_User_Right_By_UserFuntion(item_us.User_Name, fun.id); } } } } #endregion #region Thêm full quyền cho những function mới thêm vào cho all các user thuộc group đó if (_funt_add.Count > 0) { // lấy all user thuộc nhóm đó foreach (User_Info item_us in DBMemory.c_hash_Users.Values) { List <User_RightsInfo> _lstRightByUser = new List <User_RightsInfo>(); if (item_us.Group_Id == c_GroupUserInfo.Id) { #region Add thêm quyền vào user đó // add thêm những quyền mới thêm vào user đó foreach (FunctionsInfo fun in _funt_add) { User_FunctionsInfo _us_fun = new User_FunctionsInfo(); _us_fun.functionId = fun.id; _us_fun.authcode = 1; User_RightsInfo _User_RightsInfo = ConvertToUser_RightsInfo(_us_fun, item_us.User_Id); _User_RightsInfo.User_Name = item_us.User_Name; _lstRightByUser.Add(_User_RightsInfo); } _User_RightsController.User_Rights_Insert_Barth(_lstRightByUser); #endregion } } } #endregion } catch (Exception ex) { ErrorLog.log.Error(ex.ToString()); } }