detect/detect.gui/Context/DetectContext.cs
2024-11-13 17:09:15 +08:00

71 lines
4.0 KiB
C#

using System.IO;
using Microsoft.EntityFrameworkCore;
using detect.gui.Models.Entities;
using xwd.utils;
namespace detect.gui.Context;
public class DetectContext : DbContext
{
private readonly string _dbPath = AppSettingsManager.Manager().GetString("Database.Path");
public DetectContext()
{
// 创建数据库
if (base.Database.EnsureCreated())
InitData();
}
/// <summary>
/// 初始化
/// </summary>
private void InitData()
{
Set<AuthorityEntity>().Add(new AuthorityEntity { Id = 1, Name = "首页", ParentId = 0 });
Set<AuthorityEntity>().Add(new AuthorityEntity { Id = 2, Name = "任务管理", ParentId = 0 });
Set<AuthorityEntity>().Add(new AuthorityEntity { Id = 3, Name = "设备管理", ParentId = 0 });
Set<AuthorityEntity>().Add(new AuthorityEntity { Id = 4, Name = "日志查看", ParentId = 0 });
Set<AuthorityEntity>().Add(new AuthorityEntity { Id = 5, Name = "用户管理", ParentId = 0 });
Set<UserEntity>().Add(new UserEntity { Id = 1, Username = "admin", Password = "winner!", RealName = "管理员" });
Set<UserAuthorityEntity>().Add(new UserAuthorityEntity { Id = 1, UserId = 1, AuthorityId = 1 });
Set<UserAuthorityEntity>().Add(new UserAuthorityEntity { Id = 2, UserId = 1, AuthorityId = 2 });
Set<UserAuthorityEntity>().Add(new UserAuthorityEntity { Id = 3, UserId = 1, AuthorityId = 3 });
Set<UserAuthorityEntity>().Add(new UserAuthorityEntity { Id = 4, UserId = 1, AuthorityId = 4 });
Set<DeviceEntity>().Add(new DeviceEntity { Id = 1, Name = "设备11", DeviceIp = "192.168.101.253", DevicePort = "13000", CameraRtsp = "https://stream7.iqilu.com/10339/article/202002/17/4417a27b1a656f4779eaa005ecd1a1a0.mp4"});
Set<DeviceEntity>().Add(new DeviceEntity { Id = 2, Name = "设备12", CameraRtsp = "https://stream7.iqilu.com/10339/article/202002/17/4417a27b1a656f4779eaa005ecd1a1a0.mp4"});
Set<DeviceEntity>().Add(new DeviceEntity { Id = 3, Name = "设备13", CameraRtsp = "https://stream7.iqilu.com/10339/article/202002/17/4417a27b1a656f4779eaa005ecd1a1a0.mp4"});
SaveChanges();
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite($"Data Source={_dbPath}detect.db");
base.OnConfiguring(optionsBuilder);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<UserEntity>().ToTable("User");
modelBuilder.Entity<AuthorityEntity>().ToTable("Authority");
modelBuilder.Entity<UserAuthorityEntity>().ToTable("UserAuthority");
modelBuilder.Entity<DetectTaskEntity>().ToTable("DetectTask");
modelBuilder.Entity<DeviceEntity>().ToTable("Device");
modelBuilder.Entity<LogEntity>().ToTable("Log");
modelBuilder.Entity<UserEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
modelBuilder.Entity<UserEntity>().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')");
modelBuilder.Entity<AuthorityEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
modelBuilder.Entity<AuthorityEntity>().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')");
modelBuilder.Entity<AuthorityEntity>().Property(p => p.ParentId).HasDefaultValueSql("0");
modelBuilder.Entity<DetectTaskEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
modelBuilder.Entity<DetectTaskEntity>().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')");
modelBuilder.Entity<DeviceEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
modelBuilder.Entity<DeviceEntity>().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')");
modelBuilder.Entity<LogEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
base.OnModelCreating(modelBuilder);
}
}