44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
using System.Windows.Controls;
|
|
using PMSWPF.Data.Entities;
|
|
using PMSWPF.Extensions;
|
|
using PMSWPF.Models;
|
|
using SqlSugar;
|
|
|
|
namespace PMSWPF.Data.Repositories;
|
|
|
|
public class MenuRepository
|
|
{
|
|
private readonly SqlSugarClient _db;
|
|
|
|
public MenuRepository()
|
|
{
|
|
_db = DbContext.GetInstance();
|
|
}
|
|
|
|
public async Task<List<MenuBean>> GetMenu()
|
|
{
|
|
// //无主键用法新:5.1.4.110
|
|
// db.Queryable<Tree>().ToTree(it=>it.Child,it=>it.ParentId,0,it=>it.Id)//+4重载
|
|
List<MenuBean> menus = new();
|
|
var dbMenuList = await _db.Queryable<DbMenu>().ToTreeAsync(dm => dm.Items, dm => dm.ParentId, 0);
|
|
foreach (var item in dbMenuList)
|
|
{
|
|
menus.Add(item.CopyTo<MenuBean>());
|
|
}
|
|
|
|
return menus;
|
|
}
|
|
|
|
public async Task<int> AddMenu(MenuBean menu)
|
|
{
|
|
return await _db.Insertable<DbMenu>(menu.CopyTo<DbMenu>()).ExecuteCommandAsync();
|
|
}
|
|
|
|
public async Task<int> AddDeviceMenu(MenuBean menu)
|
|
{
|
|
var deviceMenu = await _db.Queryable<DbMenu>().FirstAsync(m => m.Name == "设备");
|
|
if (deviceMenu == null) return 0;
|
|
menu.ParentId = deviceMenu.Id;
|
|
return await _db.Insertable<DbMenu>(menu.CopyTo<DbMenu>()).ExecuteCommandAsync();
|
|
}
|
|
} |