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
|
{
|
/// <summary>
|
/// 根据roleCode获取rel数据
|
/// </summary>
|
/// <param name="sqliteHelper"></param>
|
/// <param name="roleCode"></param>
|
/// <returns></returns>
|
public static ObservableCollection<RoleData> SelectUserRoleData(SqliteHelper sqliteHelper,
|
string roleCode)
|
{
|
ObservableCollection<RoleData> datas = new ObservableCollection<RoleData>();
|
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<RoleMenuRel> rels, string roleCode)
|
{
|
List<RoleMenuRel> datas = new List<RoleMenuRel>();
|
GetSelectedMenu(rels, datas);
|
List<string> sqls = new List<string>() {
|
$"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<RoleMenuRel> rels, List<RoleMenuRel> datas)
|
{
|
foreach (var dr in rels)
|
{
|
if (dr.Selected)
|
{
|
datas.Add(dr);
|
}
|
GetSelectedMenu(dr.Children, datas);
|
}
|
}
|
|
}
|
}
|