using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Markup; using DatabaseHelper; using HMI.Core.Util; using HMI.MenuManage.Entity; namespace HMI.MenuManage.Util { public class RoleHelper { /// /// 根据roleCode获取rel数据 /// /// /// /// public static ObservableCollection SelectUserRoleData(SqliteHelper sqliteHelper, string roleCode) { ObservableCollection datas = new ObservableCollection(); DataTable dt = sqliteHelper.GetDataTable($@"SELECT * FROM role AS r ;"); if (dt != null) { foreach (DataRow dr in dt.Rows) { var role = new RoleData { Id = dr["id"].ToString(), Code = dr["code"].ToString(), Name = dr["name"].ToString() }; datas.Add(role); } } return datas; } public static void SaveRelData(SqliteHelper sqliteHelper, ObservableCollection rels, string roleCode) { List datas = new List(); GetSelectedMenu(rels, datas); List sqls = new List() { $"DELETE FROM role_menu_rel WHERE roleCode='{roleCode}'" }; foreach (var data in datas) { sqls.Add($"INSERT INTO role_menu_rel (roleCode,menuCode) VALUES ('{roleCode}','{data.MenuCode}');"); } sqliteHelper.ExecuteBatchSql(sqls); } public static void GetSelectedMenu(IEnumerable rels, List datas) { foreach (var dr in rels) { if (dr.Selected) { datas.Add(dr); } GetSelectedMenu(dr.Children, datas); } } } }