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);
}
}
}
}