临时提交
This commit is contained in:
82
DMS.Infrastructure/Services/DatabaseInitializerService.cs
Normal file
82
DMS.Infrastructure/Services/DatabaseInitializerService.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using DMS.Config;
|
||||
using DMS.Core.Enums;
|
||||
using DMS.Infrastructure.Data;
|
||||
using DMS.Infrastructure.Entities;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DMS.Infrastructure.Services
|
||||
{
|
||||
public class DatabaseInitializerService : DMS.Core.Interfaces.IDatabaseService
|
||||
{
|
||||
private readonly SqlSugarClient _db;
|
||||
|
||||
public DatabaseInitializerService(SqlSugarDbContext dbContext)
|
||||
{
|
||||
_db = dbContext.GetSqlSugarClient();
|
||||
}
|
||||
|
||||
public void InitializeDataBase()
|
||||
{
|
||||
_db.DbMaintenance.CreateDatabase();
|
||||
_db.CodeFirst.InitTables<DbNlog>();
|
||||
_db.CodeFirst.InitTables<DbDevice>();
|
||||
_db.CodeFirst.InitTables<DbVariableTable>();
|
||||
_db.CodeFirst.InitTables<DbVariable>();
|
||||
_db.CodeFirst.InitTables<DbVariableHistory>();
|
||||
_db.CodeFirst.InitTables<DbUser>();
|
||||
_db.CodeFirst.InitTables<DbMqtt>();
|
||||
_db.CodeFirst.InitTables<DbVariableMqtt>();
|
||||
_db.CodeFirst.InitTables<DbMenu>();
|
||||
}
|
||||
|
||||
public async Task InitializeMenu()
|
||||
{
|
||||
var homeMenu = new DbMenu()
|
||||
{ Name = "主页", Type = MenuType.MainMenu, Icon = "Home", ParentId = 0 }; // Icon needs to be adjusted if it's not a string
|
||||
|
||||
var deviceMenu = new DbMenu()
|
||||
{
|
||||
Name = "设备", Type = MenuType.MainMenu, Icon = "Devices3",
|
||||
ParentId = 0
|
||||
};
|
||||
var dataTransfromMenu = new DbMenu()
|
||||
{
|
||||
Name = "数据转换", Type = MenuType.MainMenu,
|
||||
Icon = "ChromeSwitch", ParentId = 0
|
||||
};
|
||||
var mqttMenu = new DbMenu()
|
||||
{
|
||||
Name = "Mqtt服务器", Type = MenuType.MainMenu, Icon = "Cloud",
|
||||
ParentId = 0
|
||||
};
|
||||
|
||||
var settingMenu = new DbMenu()
|
||||
{
|
||||
Name = "设置", Type = MenuType.MainMenu, Icon = "Settings",
|
||||
ParentId = 0
|
||||
};
|
||||
var aboutMenu = new DbMenu()
|
||||
{ Name = "关于", Type = MenuType.MainMenu, Icon = "Info", ParentId = 0 };
|
||||
|
||||
await CheckMainMenuExist(homeMenu);
|
||||
await CheckMainMenuExist(deviceMenu);
|
||||
await CheckMainMenuExist(dataTransfromMenu);
|
||||
await CheckMainMenuExist(mqttMenu);
|
||||
await CheckMainMenuExist(settingMenu);
|
||||
await CheckMainMenuExist(aboutMenu);
|
||||
}
|
||||
|
||||
private async Task CheckMainMenuExist(DbMenu menu)
|
||||
{
|
||||
var homeMenuExist = await _db.Queryable<DbMenu>()
|
||||
.FirstAsync(dm => dm.Name == menu.Name);
|
||||
if (homeMenuExist == null)
|
||||
{
|
||||
await _db.Insertable<DbMenu>(menu)
|
||||
.ExecuteCommandAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user