Adding permissions' methods
This commit is contained in:
@@ -2,6 +2,8 @@
|
|||||||
using BasicDotnetTemplate.MainProject.Services;
|
using BasicDotnetTemplate.MainProject.Services;
|
||||||
using BasicDotnetTemplate.MainProject.Models.Api.Data.Role;
|
using BasicDotnetTemplate.MainProject.Models.Api.Data.Role;
|
||||||
using BasicDotnetTemplate.MainProject.Models.Database.SqlServer;
|
using BasicDotnetTemplate.MainProject.Models.Database.SqlServer;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using BasicDotnetTemplate.MainProject.Models.Api.Common.Exceptions;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,29 +6,75 @@ namespace BasicDotnetTemplate.MainProject.Core.Database
|
|||||||
{
|
{
|
||||||
public class SqlServerContext : DbContext
|
public class SqlServerContext : DbContext
|
||||||
{
|
{
|
||||||
|
private const string _isDeletedFalse = "[IsDeleted] = 0";
|
||||||
|
private const string _isEnabled = "[Enabled] = 1";
|
||||||
|
|
||||||
public SqlServerContext(DbContextOptions<SqlServerContext> options)
|
public SqlServerContext(DbContextOptions<SqlServerContext> options)
|
||||||
: base(options)
|
: base(options)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public DbSet<User> Users { get; set; }
|
public DbSet<PermissionModule> PermissionModules { get; set; }
|
||||||
|
public DbSet<PermissionOperation> PermissionOperations { get; set; }
|
||||||
|
public DbSet<PermissionSystem> PermissionSystems { get; set; }
|
||||||
|
public DbSet<PermissionSystemModule> PermissionSystemModules { get; set; }
|
||||||
|
public DbSet<PermissionSystemModuleOperation> PermissionSystemModuleOperations { get; set; }
|
||||||
|
public DbSet<RolePermissionSystemModuleOperation> RolePermissionSystemModuleOperations { get; set; }
|
||||||
public DbSet<Role> Roles { get; set; }
|
public DbSet<Role> Roles { get; set; }
|
||||||
|
public DbSet<User> Users { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
|
#region "INDEXES"
|
||||||
|
// Indexes
|
||||||
|
|
||||||
modelBuilder.Entity<User>()
|
modelBuilder.Entity<User>()
|
||||||
.HasIndex(x => x.Email, "IX_Email");
|
.HasIndex(x => x.Email, "IX_Email");
|
||||||
|
|
||||||
modelBuilder.Entity<User>()
|
modelBuilder.Entity<User>()
|
||||||
.HasIndex(x => new { x.IsDeleted, x.Guid }, "IX_IsDeleted_Guid")
|
.HasIndex(x => new { x.IsDeleted, x.Guid }, "IX_IsDeleted_Guid")
|
||||||
.HasFilter("[IsDeleted] = 0");
|
.HasFilter(_isDeletedFalse);
|
||||||
|
|
||||||
|
|
||||||
modelBuilder.Entity<Role>()
|
modelBuilder.Entity<Role>()
|
||||||
.HasIndex(x => new { x.IsDeleted, x.Guid }, "IX_IsDeleted_Guid")
|
.HasIndex(x => new { x.IsDeleted, x.Guid }, "IX_IsDeleted_Guid")
|
||||||
.HasFilter("[IsDeleted] = 0");
|
.HasFilter(_isDeletedFalse);
|
||||||
|
|
||||||
|
modelBuilder.Entity<PermissionSystem>()
|
||||||
|
.HasIndex(x => new { x.IsDeleted }, "IX_IsDeleted")
|
||||||
|
.HasFilter(_isDeletedFalse);
|
||||||
|
|
||||||
|
modelBuilder.Entity<PermissionSystem>()
|
||||||
|
.HasIndex(x => new { x.Enabled }, "IX_Enabled")
|
||||||
|
.HasFilter(_isEnabled);
|
||||||
|
|
||||||
|
modelBuilder.Entity<PermissionSystem>()
|
||||||
|
.HasIndex(x => new { x.IsDeleted, x.Name, x.Enabled }, "IX_IsDeleted_Name_Enabled")
|
||||||
|
.HasFilter(_isEnabled)
|
||||||
|
.HasFilter(_isDeletedFalse);
|
||||||
|
|
||||||
|
modelBuilder.Entity<PermissionModule>()
|
||||||
|
.HasIndex(x => new { x.IsDeleted }, "IX_IsDeleted")
|
||||||
|
.HasFilter(_isDeletedFalse);
|
||||||
|
|
||||||
|
modelBuilder.Entity<PermissionModule>()
|
||||||
|
.HasIndex(x => new { x.Enabled }, "IX_Enabled")
|
||||||
|
.HasFilter(_isEnabled);
|
||||||
|
|
||||||
|
modelBuilder.Entity<PermissionModule>()
|
||||||
|
.HasIndex(x => new { x.IsDeleted, x.Name, x.Enabled }, "IX_IsDeleted_Name_Enabled")
|
||||||
|
.HasFilter(_isEnabled)
|
||||||
|
.HasFilter(_isDeletedFalse);
|
||||||
|
|
||||||
|
modelBuilder.Entity<PermissionOperation>()
|
||||||
|
.HasIndex(x => new { x.IsDeleted, x.Name }, "IX_IsDeleted_Name");
|
||||||
|
|
||||||
|
modelBuilder.Entity<PermissionSystemModuleOperation>()
|
||||||
|
.HasIndex(x => new { x.IsDeleted, x.Enabled, x.Guid }, "IX_IsDeleted_Enabled_Guid");
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
543
MainProject/Migrations/20250426183010_AddingPermissionsTables.Designer.cs
generated
Normal file
543
MainProject/Migrations/20250426183010_AddingPermissionsTables.Designer.cs
generated
Normal file
@@ -0,0 +1,543 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
using System;
|
||||||
|
using BasicDotnetTemplate.MainProject.Core.Database;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
|
using Microsoft.EntityFrameworkCore.Metadata;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace MainProject.Migrations
|
||||||
|
{
|
||||||
|
[DbContext(typeof(SqlServerContext))]
|
||||||
|
[Migration("20250426183010_AddingPermissionsTables")]
|
||||||
|
partial class AddingPermissionsTables
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
#pragma warning disable 612, 618
|
||||||
|
modelBuilder
|
||||||
|
.HasAnnotation("ProductVersion", "9.0.2")
|
||||||
|
.HasAnnotation("Relational:MaxIdentifierLength", 128);
|
||||||
|
|
||||||
|
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionModule", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<bool>("Enabled")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(100)
|
||||||
|
.HasColumnType("nvarchar(100)");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "Enabled" }, "IX_Enabled")
|
||||||
|
.HasFilter("[Enabled] = 1");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted" }, "IX_IsDeleted")
|
||||||
|
.HasFilter("[IsDeleted] = 0");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted", "Name", "Enabled" }, "IX_IsDeleted_Name_Enabled")
|
||||||
|
.HasFilter("[IsDeleted] = 0");
|
||||||
|
|
||||||
|
b.ToTable("PermissionModules");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionOperation", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(100)
|
||||||
|
.HasColumnType("nvarchar(100)");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted", "Name" }, "IX_IsDeleted_Name");
|
||||||
|
|
||||||
|
b.ToTable("PermissionOperations");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystem", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<bool>("Enabled")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(100)
|
||||||
|
.HasColumnType("nvarchar(100)");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "Enabled" }, "IX_Enabled")
|
||||||
|
.HasFilter("[Enabled] = 1");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted" }, "IX_IsDeleted")
|
||||||
|
.HasFilter("[IsDeleted] = 0");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted", "Name", "Enabled" }, "IX_IsDeleted_Name_Enabled")
|
||||||
|
.HasFilter("[IsDeleted] = 0");
|
||||||
|
|
||||||
|
b.ToTable("PermissionSystems");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystemModule", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<bool>("Enabled")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<int>("PermissionModuleId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<int>("PermissionSystemId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("PermissionModuleId");
|
||||||
|
|
||||||
|
b.HasIndex("PermissionSystemId");
|
||||||
|
|
||||||
|
b.ToTable("PermissionSystemModules");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystemModuleOperation", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<bool>("Enabled")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<int>("PermissionOperationId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<int>("PermissionSystemModuleId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("PermissionOperationId");
|
||||||
|
|
||||||
|
b.HasIndex("PermissionSystemModuleId");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted", "Enabled", "Guid" }, "IX_IsDeleted_Enabled_Guid");
|
||||||
|
|
||||||
|
b.ToTable("PermissionSystemModuleOperations");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.Role", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<bool>("IsNotEditable")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(100)
|
||||||
|
.HasColumnType("nvarchar(100)");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted", "Guid" }, "IX_IsDeleted_Guid")
|
||||||
|
.HasFilter("[IsDeleted] = 0");
|
||||||
|
|
||||||
|
b.ToTable("Roles");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.RolePermissionSystemModuleOperation", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<bool>("Active")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<int>("PermissionSystemModuleOperationId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<int>("RoleId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("PermissionSystemModuleOperationId");
|
||||||
|
|
||||||
|
b.HasIndex("RoleId");
|
||||||
|
|
||||||
|
b.ToTable("RolePermissionSystemModuleOperations");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.User", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<string>("Email")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(200)
|
||||||
|
.HasColumnType("nvarchar(200)");
|
||||||
|
|
||||||
|
b.Property<string>("FirstName")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(200)
|
||||||
|
.HasColumnType("nvarchar(200)");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<bool>("IsTestUser")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("LastName")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(200)
|
||||||
|
.HasColumnType("nvarchar(200)");
|
||||||
|
|
||||||
|
b.Property<string>("Password")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("PasswordHash")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("PasswordSalt")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<int>("RoleId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("RoleId");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "Email" }, "IX_Email");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted", "Guid" }, "IX_IsDeleted_Guid")
|
||||||
|
.HasFilter("[IsDeleted] = 0");
|
||||||
|
|
||||||
|
b.ToTable("Users");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystemModule", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionModule", "PermissionModule")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PermissionModuleId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystem", "PermissionSystem")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PermissionSystemId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Navigation("PermissionModule");
|
||||||
|
|
||||||
|
b.Navigation("PermissionSystem");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystemModuleOperation", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionOperation", "PermissionOperation")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PermissionOperationId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystemModule", "PermissionSystemModule")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PermissionSystemModuleId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Navigation("PermissionOperation");
|
||||||
|
|
||||||
|
b.Navigation("PermissionSystemModule");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.RolePermissionSystemModuleOperation", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystemModuleOperation", "PermissionSystemModuleOperation")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PermissionSystemModuleOperationId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.Role", "Role")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("RoleId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Navigation("PermissionSystemModuleOperation");
|
||||||
|
|
||||||
|
b.Navigation("Role");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.User", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.Role", "Role")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("RoleId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Navigation("Role");
|
||||||
|
});
|
||||||
|
#pragma warning restore 612, 618
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
283
MainProject/Migrations/20250426183010_AddingPermissionsTables.cs
Normal file
283
MainProject/Migrations/20250426183010_AddingPermissionsTables.cs
Normal file
@@ -0,0 +1,283 @@
|
|||||||
|
using System;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace MainProject.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class AddingPermissionsTables : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "PermissionModules",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "int", nullable: false)
|
||||||
|
.Annotation("SqlServer:Identity", "1, 1"),
|
||||||
|
Name = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: false),
|
||||||
|
Enabled = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
Guid = table.Column<string>(type: "nvarchar(45)", maxLength: 45, nullable: false),
|
||||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||||
|
CreationUserId = table.Column<int>(type: "int", nullable: true),
|
||||||
|
UpdateTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
UpdateUserId = table.Column<int>(type: "int", nullable: true),
|
||||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
DeletionUserId = table.Column<int>(type: "int", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_PermissionModules", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "PermissionOperations",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "int", nullable: false)
|
||||||
|
.Annotation("SqlServer:Identity", "1, 1"),
|
||||||
|
Name = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: false),
|
||||||
|
Guid = table.Column<string>(type: "nvarchar(45)", maxLength: 45, nullable: false),
|
||||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||||
|
CreationUserId = table.Column<int>(type: "int", nullable: true),
|
||||||
|
UpdateTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
UpdateUserId = table.Column<int>(type: "int", nullable: true),
|
||||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
DeletionUserId = table.Column<int>(type: "int", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_PermissionOperations", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "PermissionSystems",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "int", nullable: false)
|
||||||
|
.Annotation("SqlServer:Identity", "1, 1"),
|
||||||
|
Name = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: false),
|
||||||
|
Enabled = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
Guid = table.Column<string>(type: "nvarchar(45)", maxLength: 45, nullable: false),
|
||||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||||
|
CreationUserId = table.Column<int>(type: "int", nullable: true),
|
||||||
|
UpdateTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
UpdateUserId = table.Column<int>(type: "int", nullable: true),
|
||||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
DeletionUserId = table.Column<int>(type: "int", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_PermissionSystems", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "PermissionSystemModules",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "int", nullable: false)
|
||||||
|
.Annotation("SqlServer:Identity", "1, 1"),
|
||||||
|
PermissionSystemId = table.Column<int>(type: "int", nullable: false),
|
||||||
|
PermissionModuleId = table.Column<int>(type: "int", nullable: false),
|
||||||
|
Enabled = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
Guid = table.Column<string>(type: "nvarchar(45)", maxLength: 45, nullable: false),
|
||||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||||
|
CreationUserId = table.Column<int>(type: "int", nullable: true),
|
||||||
|
UpdateTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
UpdateUserId = table.Column<int>(type: "int", nullable: true),
|
||||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
DeletionUserId = table.Column<int>(type: "int", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_PermissionSystemModules", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_PermissionSystemModules_PermissionModules_PermissionModuleId",
|
||||||
|
column: x => x.PermissionModuleId,
|
||||||
|
principalTable: "PermissionModules",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_PermissionSystemModules_PermissionSystems_PermissionSystemId",
|
||||||
|
column: x => x.PermissionSystemId,
|
||||||
|
principalTable: "PermissionSystems",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "PermissionSystemModuleOperations",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "int", nullable: false)
|
||||||
|
.Annotation("SqlServer:Identity", "1, 1"),
|
||||||
|
PermissionSystemModuleId = table.Column<int>(type: "int", nullable: false),
|
||||||
|
PermissionOperationId = table.Column<int>(type: "int", nullable: false),
|
||||||
|
Enabled = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
Guid = table.Column<string>(type: "nvarchar(45)", maxLength: 45, nullable: false),
|
||||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||||
|
CreationUserId = table.Column<int>(type: "int", nullable: true),
|
||||||
|
UpdateTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
UpdateUserId = table.Column<int>(type: "int", nullable: true),
|
||||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
DeletionUserId = table.Column<int>(type: "int", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_PermissionSystemModuleOperations", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_PermissionSystemModuleOperations_PermissionOperations_PermissionOperationId",
|
||||||
|
column: x => x.PermissionOperationId,
|
||||||
|
principalTable: "PermissionOperations",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_PermissionSystemModuleOperations_PermissionSystemModules_PermissionSystemModuleId",
|
||||||
|
column: x => x.PermissionSystemModuleId,
|
||||||
|
principalTable: "PermissionSystemModules",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "RolePermissionSystemModuleOperations",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "int", nullable: false)
|
||||||
|
.Annotation("SqlServer:Identity", "1, 1"),
|
||||||
|
RoleId = table.Column<int>(type: "int", nullable: false),
|
||||||
|
PermissionSystemModuleOperationId = table.Column<int>(type: "int", nullable: false),
|
||||||
|
Active = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
Guid = table.Column<string>(type: "nvarchar(45)", maxLength: 45, nullable: false),
|
||||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||||
|
CreationUserId = table.Column<int>(type: "int", nullable: true),
|
||||||
|
UpdateTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
UpdateUserId = table.Column<int>(type: "int", nullable: true),
|
||||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
DeletionUserId = table.Column<int>(type: "int", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_RolePermissionSystemModuleOperations", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_RolePermissionSystemModuleOperations_PermissionSystemModuleOperations_PermissionSystemModuleOperationId",
|
||||||
|
column: x => x.PermissionSystemModuleOperationId,
|
||||||
|
principalTable: "PermissionSystemModuleOperations",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_RolePermissionSystemModuleOperations_Roles_RoleId",
|
||||||
|
column: x => x.RoleId,
|
||||||
|
principalTable: "Roles",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Enabled",
|
||||||
|
table: "PermissionModules",
|
||||||
|
column: "Enabled",
|
||||||
|
filter: "[Enabled] = 1");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_IsDeleted",
|
||||||
|
table: "PermissionModules",
|
||||||
|
column: "IsDeleted",
|
||||||
|
filter: "[IsDeleted] = 0");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_IsDeleted_Name_Enabled",
|
||||||
|
table: "PermissionModules",
|
||||||
|
columns: new[] { "IsDeleted", "Name", "Enabled" },
|
||||||
|
filter: "[IsDeleted] = 0");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_IsDeleted_Name",
|
||||||
|
table: "PermissionOperations",
|
||||||
|
columns: new[] { "IsDeleted", "Name" });
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_IsDeleted_Enabled_Guid",
|
||||||
|
table: "PermissionSystemModuleOperations",
|
||||||
|
columns: new[] { "IsDeleted", "Enabled", "Guid" });
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_PermissionSystemModuleOperations_PermissionOperationId",
|
||||||
|
table: "PermissionSystemModuleOperations",
|
||||||
|
column: "PermissionOperationId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_PermissionSystemModuleOperations_PermissionSystemModuleId",
|
||||||
|
table: "PermissionSystemModuleOperations",
|
||||||
|
column: "PermissionSystemModuleId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_PermissionSystemModules_PermissionModuleId",
|
||||||
|
table: "PermissionSystemModules",
|
||||||
|
column: "PermissionModuleId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_PermissionSystemModules_PermissionSystemId",
|
||||||
|
table: "PermissionSystemModules",
|
||||||
|
column: "PermissionSystemId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Enabled",
|
||||||
|
table: "PermissionSystems",
|
||||||
|
column: "Enabled",
|
||||||
|
filter: "[Enabled] = 1");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_IsDeleted",
|
||||||
|
table: "PermissionSystems",
|
||||||
|
column: "IsDeleted",
|
||||||
|
filter: "[IsDeleted] = 0");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_IsDeleted_Name_Enabled",
|
||||||
|
table: "PermissionSystems",
|
||||||
|
columns: new[] { "IsDeleted", "Name", "Enabled" },
|
||||||
|
filter: "[IsDeleted] = 0");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_RolePermissionSystemModuleOperations_PermissionSystemModuleOperationId",
|
||||||
|
table: "RolePermissionSystemModuleOperations",
|
||||||
|
column: "PermissionSystemModuleOperationId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_RolePermissionSystemModuleOperations_RoleId",
|
||||||
|
table: "RolePermissionSystemModuleOperations",
|
||||||
|
column: "RoleId");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "RolePermissionSystemModuleOperations");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "PermissionSystemModuleOperations");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "PermissionOperations");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "PermissionSystemModules");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "PermissionModules");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "PermissionSystems");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -22,6 +22,270 @@ namespace MainProject.Migrations
|
|||||||
|
|
||||||
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
|
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionModule", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<bool>("Enabled")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(100)
|
||||||
|
.HasColumnType("nvarchar(100)");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "Enabled" }, "IX_Enabled")
|
||||||
|
.HasFilter("[Enabled] = 1");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted" }, "IX_IsDeleted")
|
||||||
|
.HasFilter("[IsDeleted] = 0");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted", "Name", "Enabled" }, "IX_IsDeleted_Name_Enabled")
|
||||||
|
.HasFilter("[IsDeleted] = 0");
|
||||||
|
|
||||||
|
b.ToTable("PermissionModules");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionOperation", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(100)
|
||||||
|
.HasColumnType("nvarchar(100)");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted", "Name" }, "IX_IsDeleted_Name");
|
||||||
|
|
||||||
|
b.ToTable("PermissionOperations");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystem", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<bool>("Enabled")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(100)
|
||||||
|
.HasColumnType("nvarchar(100)");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "Enabled" }, "IX_Enabled")
|
||||||
|
.HasFilter("[Enabled] = 1");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted" }, "IX_IsDeleted")
|
||||||
|
.HasFilter("[IsDeleted] = 0");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted", "Name", "Enabled" }, "IX_IsDeleted_Name_Enabled")
|
||||||
|
.HasFilter("[IsDeleted] = 0");
|
||||||
|
|
||||||
|
b.ToTable("PermissionSystems");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystemModule", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<bool>("Enabled")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<int>("PermissionModuleId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<int>("PermissionSystemId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("PermissionModuleId");
|
||||||
|
|
||||||
|
b.HasIndex("PermissionSystemId");
|
||||||
|
|
||||||
|
b.ToTable("PermissionSystemModules");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystemModuleOperation", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<bool>("Enabled")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<int>("PermissionOperationId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<int>("PermissionSystemModuleId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("PermissionOperationId");
|
||||||
|
|
||||||
|
b.HasIndex("PermissionSystemModuleId");
|
||||||
|
|
||||||
|
b.HasIndex(new[] { "IsDeleted", "Enabled", "Guid" }, "IX_IsDeleted_Enabled_Guid");
|
||||||
|
|
||||||
|
b.ToTable("PermissionSystemModuleOperations");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.Role", b =>
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.Role", b =>
|
||||||
{
|
{
|
||||||
b.Property<int>("Id")
|
b.Property<int>("Id")
|
||||||
@@ -72,6 +336,58 @@ namespace MainProject.Migrations
|
|||||||
b.ToTable("Roles");
|
b.ToTable("Roles");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.RolePermissionSystemModuleOperation", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<bool>("Active")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("CreationUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("DeletionUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<string>("Guid")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(45)
|
||||||
|
.HasColumnType("nvarchar(45)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<int>("PermissionSystemModuleOperationId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<int>("RoleId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("UpdateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("UpdateUserId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("PermissionSystemModuleOperationId");
|
||||||
|
|
||||||
|
b.HasIndex("RoleId");
|
||||||
|
|
||||||
|
b.ToTable("RolePermissionSystemModuleOperations");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.User", b =>
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.User", b =>
|
||||||
{
|
{
|
||||||
b.Property<int>("Id")
|
b.Property<int>("Id")
|
||||||
@@ -151,6 +467,63 @@ namespace MainProject.Migrations
|
|||||||
b.ToTable("Users");
|
b.ToTable("Users");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystemModule", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionModule", "PermissionModule")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PermissionModuleId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystem", "PermissionSystem")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PermissionSystemId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Navigation("PermissionModule");
|
||||||
|
|
||||||
|
b.Navigation("PermissionSystem");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystemModuleOperation", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionOperation", "PermissionOperation")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PermissionOperationId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystemModule", "PermissionSystemModule")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PermissionSystemModuleId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Navigation("PermissionOperation");
|
||||||
|
|
||||||
|
b.Navigation("PermissionSystemModule");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.RolePermissionSystemModuleOperation", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.PermissionSystemModuleOperation", "PermissionSystemModuleOperation")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PermissionSystemModuleOperationId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.Role", "Role")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("RoleId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Navigation("PermissionSystemModuleOperation");
|
||||||
|
|
||||||
|
b.Navigation("Role");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.User", b =>
|
modelBuilder.Entity("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.User", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.Role", "Role")
|
b.HasOne("BasicDotnetTemplate.MainProject.Models.Database.SqlServer.Role", "Role")
|
||||||
|
|||||||
11
MainProject/Models/Database/SqlServer/PermissionModule.cs
Normal file
11
MainProject/Models/Database/SqlServer/PermissionModule.cs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace BasicDotnetTemplate.MainProject.Models.Database.SqlServer
|
||||||
|
{
|
||||||
|
public class PermissionModule : Base
|
||||||
|
{
|
||||||
|
[MaxLength(100)]
|
||||||
|
public required string Name { get; set; }
|
||||||
|
public required bool Enabled { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
10
MainProject/Models/Database/SqlServer/PermissionOperation.cs
Normal file
10
MainProject/Models/Database/SqlServer/PermissionOperation.cs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace BasicDotnetTemplate.MainProject.Models.Database.SqlServer
|
||||||
|
{
|
||||||
|
public class PermissionOperation : Base
|
||||||
|
{
|
||||||
|
[MaxLength(100)]
|
||||||
|
public required string Name { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
11
MainProject/Models/Database/SqlServer/PermissionSystem.cs
Normal file
11
MainProject/Models/Database/SqlServer/PermissionSystem.cs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace BasicDotnetTemplate.MainProject.Models.Database.SqlServer
|
||||||
|
{
|
||||||
|
public class PermissionSystem : Base
|
||||||
|
{
|
||||||
|
[MaxLength(100)]
|
||||||
|
public required string Name { get; set; }
|
||||||
|
public required bool Enabled { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace BasicDotnetTemplate.MainProject.Models.Database.SqlServer
|
||||||
|
{
|
||||||
|
public class PermissionSystemModule : Base
|
||||||
|
{
|
||||||
|
public required int PermissionSystemId { get; set; }
|
||||||
|
public required int PermissionModuleId { get; set; }
|
||||||
|
public required PermissionSystem PermissionSystem { get; set; }
|
||||||
|
public required PermissionModule PermissionModule { get; set; }
|
||||||
|
public required bool Enabled { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace BasicDotnetTemplate.MainProject.Models.Database.SqlServer
|
||||||
|
{
|
||||||
|
public class PermissionSystemModuleOperation : Base
|
||||||
|
{
|
||||||
|
public required int PermissionSystemModuleId { get; set; }
|
||||||
|
public required int PermissionOperationId { get; set; }
|
||||||
|
public required bool Enabled { get; set; }
|
||||||
|
public required PermissionSystemModule PermissionSystemModule { get; set; }
|
||||||
|
public required PermissionOperation PermissionOperation { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace BasicDotnetTemplate.MainProject.Models.Database.SqlServer
|
||||||
|
{
|
||||||
|
public class RolePermissionSystemModuleOperation : Base
|
||||||
|
{
|
||||||
|
public required int RoleId { get; set; }
|
||||||
|
public required int PermissionSystemModuleOperationId { get; set; }
|
||||||
|
public required bool Active { get; set; }
|
||||||
|
public required Role Role { get; set; }
|
||||||
|
public required PermissionSystemModuleOperation PermissionSystemModuleOperation { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
637
MainProject/Services/PermissionService.cs
Normal file
637
MainProject/Services/PermissionService.cs
Normal file
@@ -0,0 +1,637 @@
|
|||||||
|
|
||||||
|
using System.Collections;
|
||||||
|
using BasicDotnetTemplate.MainProject.Core.Database;
|
||||||
|
using BasicDotnetTemplate.MainProject.Models.Api.Common.Exceptions;
|
||||||
|
using BasicDotnetTemplate.MainProject.Models.Database.SqlServer;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace BasicDotnetTemplate.MainProject.Services;
|
||||||
|
|
||||||
|
public interface IPermissionService
|
||||||
|
{
|
||||||
|
Task<PermissionSystem?> GetPermissionSystemByGuidAsync(string guid);
|
||||||
|
Task<PermissionSystem?> GetPermissionSystemByNameAsync(string name);
|
||||||
|
Task<bool?> HandleEnabledPermissionSystem(PermissionSystem permission, bool enabled);
|
||||||
|
Task<PermissionSystem?> CreatePermissionSystemAsync(string name, bool enabled);
|
||||||
|
Task<bool?> DeletePermissionSystemAsync(PermissionSystem permission);
|
||||||
|
|
||||||
|
|
||||||
|
Task<PermissionModule?> GetPermissionModuleByGuidAsync(string guid);
|
||||||
|
Task<PermissionModule?> GetPermissionModuleByNameAsync(string name);
|
||||||
|
Task<bool?> HandleEnabledPermissionModuleAsync(PermissionModule permission, bool enabled);
|
||||||
|
Task<PermissionModule?> CreatePermissionModuleAsync(string name, bool enabled);
|
||||||
|
Task<bool?> DeletePermissionModuleAsync(PermissionModule permission);
|
||||||
|
|
||||||
|
|
||||||
|
Task<PermissionOperation?> GetPermissionOperationByGuidAsync(string guid);
|
||||||
|
Task<PermissionOperation?> GetPermissionOperationByNameAsync(string name);
|
||||||
|
Task<PermissionOperation?> CreatePermissionOperationAsync(string name);
|
||||||
|
Task<bool?> DeletePermissionOperationAsync(PermissionOperation permission);
|
||||||
|
|
||||||
|
|
||||||
|
Task<PermissionSystemModule?> GetPermissionSystemModuleByGuidAsync(string guid);
|
||||||
|
Task<bool?> HandleEnabledPermissionSystemModuleAsync(PermissionSystemModule permission, bool enabled);
|
||||||
|
Task<PermissionSystemModule?> CreatePermissionSystemModuleAsync(
|
||||||
|
PermissionSystem permissionSystem,
|
||||||
|
PermissionModule permissionModule,
|
||||||
|
bool enabled
|
||||||
|
);
|
||||||
|
Task<bool?> DeletePermissionSystemModuleAsync(PermissionSystemModule permission);
|
||||||
|
|
||||||
|
|
||||||
|
Task<PermissionSystemModuleOperation?> GetPermissionSystemModuleOperationByGuidAsync(string guid);
|
||||||
|
Task<bool?> HandleEnabledPermissionSystemModuleOperationAsync(PermissionSystemModuleOperation permission, bool enabled);
|
||||||
|
Task<PermissionSystemModuleOperation?> CreatePermissionSystemModuleOperationAsync(
|
||||||
|
PermissionSystemModule permissionSystemModule,
|
||||||
|
PermissionOperation permissionOperation,
|
||||||
|
bool enabled
|
||||||
|
);
|
||||||
|
Task<bool?> DeletePermissionSystemModuleOperationAsync(PermissionSystemModuleOperation permission);
|
||||||
|
|
||||||
|
|
||||||
|
Task<RolePermissionSystemModuleOperation?> GetRolePermissionSystemModuleOperationByGuidAsync(string guid);
|
||||||
|
Task<bool?> HandleEnabledRolePermissionSystemModuleOperationAsync(RolePermissionSystemModuleOperation permission, bool active);
|
||||||
|
Task<RolePermissionSystemModuleOperation?> CreateRolePermissionSystemModuleOperationAsync(
|
||||||
|
Role role,
|
||||||
|
PermissionSystemModuleOperation permissionSystemModuleOperation,
|
||||||
|
bool enabled
|
||||||
|
);
|
||||||
|
Task<bool?> DeleteRolePermissionSystemModuleOperationAsync(RolePermissionSystemModuleOperation permission);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PermissionService : BaseService, IPermissionService
|
||||||
|
{
|
||||||
|
private readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();
|
||||||
|
public PermissionService(
|
||||||
|
IHttpContextAccessor httpContextAccessor,
|
||||||
|
IConfiguration configuration,
|
||||||
|
SqlServerContext sqlServerContext
|
||||||
|
) : base(httpContextAccessor, configuration, sqlServerContext)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
private IQueryable<PermissionSystem> GetPermissionSystemsQueryable()
|
||||||
|
{
|
||||||
|
return this._sqlServerContext.PermissionSystems
|
||||||
|
.Where(x => !x.IsDeleted);
|
||||||
|
}
|
||||||
|
|
||||||
|
private IQueryable<PermissionModule> GetPermissionModulesQueryable()
|
||||||
|
{
|
||||||
|
return this._sqlServerContext.PermissionModules
|
||||||
|
.Where(x => !x.IsDeleted);
|
||||||
|
}
|
||||||
|
|
||||||
|
private IQueryable<PermissionOperation> GetPermissionOperationsQueryable()
|
||||||
|
{
|
||||||
|
return this._sqlServerContext.PermissionOperations
|
||||||
|
.Where(x => !x.IsDeleted);
|
||||||
|
}
|
||||||
|
|
||||||
|
private IQueryable<PermissionSystemModule> GetPermissionSystemModulesQueryable()
|
||||||
|
{
|
||||||
|
return this._sqlServerContext.PermissionSystemModules
|
||||||
|
.Where(x => !x.IsDeleted);
|
||||||
|
}
|
||||||
|
|
||||||
|
private IQueryable<PermissionSystemModuleOperation> GetPermissionSystemModuleOperationsQueryable()
|
||||||
|
{
|
||||||
|
return this._sqlServerContext.PermissionSystemModuleOperations
|
||||||
|
.Include(x => x.PermissionOperation)
|
||||||
|
.Include(x => x.PermissionSystemModule)
|
||||||
|
.ThenInclude(x => x.PermissionSystem)
|
||||||
|
.Where(x => !x.IsDeleted);
|
||||||
|
}
|
||||||
|
|
||||||
|
private IQueryable<RolePermissionSystemModuleOperation> GetRolePermissionSystemModuleOperationsQueryable()
|
||||||
|
{
|
||||||
|
return this._sqlServerContext.RolePermissionSystemModuleOperations
|
||||||
|
.Include(x => x.Role)
|
||||||
|
.Include(x => x.PermissionSystemModuleOperation)
|
||||||
|
.ThenInclude(x => x.PermissionSystemModule)
|
||||||
|
.ThenInclude(x => x.PermissionSystem)
|
||||||
|
.Include(x => x.PermissionSystemModuleOperation)
|
||||||
|
.ThenInclude(x => x.PermissionSystemModule)
|
||||||
|
.ThenInclude(x => x.PermissionModule)
|
||||||
|
.Include(x => x.PermissionSystemModuleOperation)
|
||||||
|
.ThenInclude(x => x.PermissionOperation)
|
||||||
|
.Where(x => !x.IsDeleted);
|
||||||
|
}
|
||||||
|
|
||||||
|
private PermissionOperation CreatePermissionOperationData(string name)
|
||||||
|
{
|
||||||
|
PermissionOperation permission = new()
|
||||||
|
{
|
||||||
|
CreationTime = DateTime.UtcNow,
|
||||||
|
Name = name,
|
||||||
|
IsDeleted = false,
|
||||||
|
Guid = Guid.NewGuid().ToString()
|
||||||
|
};
|
||||||
|
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
private PermissionSystem CreatePermissionSystemData(string name, bool enabled)
|
||||||
|
{
|
||||||
|
PermissionSystem permission = new()
|
||||||
|
{
|
||||||
|
CreationTime = DateTime.UtcNow,
|
||||||
|
Name = name,
|
||||||
|
Enabled = enabled,
|
||||||
|
IsDeleted = false,
|
||||||
|
Guid = Guid.NewGuid().ToString()
|
||||||
|
};
|
||||||
|
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
private PermissionModule CreatePermissionModuleData(string name, bool enabled)
|
||||||
|
{
|
||||||
|
PermissionModule permission = new()
|
||||||
|
{
|
||||||
|
CreationTime = DateTime.UtcNow,
|
||||||
|
Name = name,
|
||||||
|
Enabled = enabled,
|
||||||
|
IsDeleted = false,
|
||||||
|
Guid = Guid.NewGuid().ToString()
|
||||||
|
};
|
||||||
|
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
private PermissionSystemModule CreatePermissionSystemModuleData(
|
||||||
|
PermissionSystem permissionSystem,
|
||||||
|
PermissionModule permissionModule,
|
||||||
|
bool enabled
|
||||||
|
)
|
||||||
|
{
|
||||||
|
PermissionSystemModule permission = new()
|
||||||
|
{
|
||||||
|
CreationTime = DateTime.UtcNow,
|
||||||
|
PermissionSystemId = permissionSystem.Id,
|
||||||
|
PermissionSystem = permissionSystem,
|
||||||
|
PermissionModuleId = permissionModule.Id,
|
||||||
|
PermissionModule = permissionModule,
|
||||||
|
Enabled = enabled,
|
||||||
|
IsDeleted = false,
|
||||||
|
Guid = Guid.NewGuid().ToString()
|
||||||
|
};
|
||||||
|
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
private PermissionSystemModuleOperation CreatePermissionSystemModuleOperationData(
|
||||||
|
PermissionSystemModule permissionSystemModule,
|
||||||
|
PermissionOperation permissionOperation,
|
||||||
|
bool enabled
|
||||||
|
)
|
||||||
|
{
|
||||||
|
PermissionSystemModuleOperation permission = new()
|
||||||
|
{
|
||||||
|
CreationTime = DateTime.UtcNow,
|
||||||
|
PermissionOperationId = permissionOperation.Id,
|
||||||
|
PermissionOperation = permissionOperation,
|
||||||
|
PermissionSystemModuleId = permissionSystemModule.Id,
|
||||||
|
PermissionSystemModule = permissionSystemModule,
|
||||||
|
Enabled = enabled,
|
||||||
|
IsDeleted = false,
|
||||||
|
Guid = Guid.NewGuid().ToString()
|
||||||
|
};
|
||||||
|
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
private RolePermissionSystemModuleOperation CreateRolePermissionSystemModuleOperationData(
|
||||||
|
Role role,
|
||||||
|
PermissionSystemModuleOperation permissionModuleOperation,
|
||||||
|
bool active
|
||||||
|
)
|
||||||
|
{
|
||||||
|
RolePermissionSystemModuleOperation permission = new()
|
||||||
|
{
|
||||||
|
CreationTime = DateTime.UtcNow,
|
||||||
|
PermissionSystemModuleOperationId = permissionModuleOperation.Id,
|
||||||
|
PermissionSystemModuleOperation = permissionModuleOperation,
|
||||||
|
RoleId = role.Id,
|
||||||
|
Role = role,
|
||||||
|
Active = active,
|
||||||
|
IsDeleted = false,
|
||||||
|
Guid = Guid.NewGuid().ToString()
|
||||||
|
};
|
||||||
|
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region "PermissionSystem"
|
||||||
|
|
||||||
|
public async Task<PermissionSystem?> GetPermissionSystemByGuidAsync(string guid)
|
||||||
|
{
|
||||||
|
return await this.GetPermissionSystemsQueryable().Where(x => x.Guid == guid).FirstOrDefaultAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<PermissionSystem?> GetPermissionSystemByNameAsync(string name)
|
||||||
|
{
|
||||||
|
return await this.GetPermissionSystemsQueryable().Where(x => x.Name == name).FirstOrDefaultAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<PermissionSystem?> CreatePermissionSystemAsync(string name, bool enabled)
|
||||||
|
{
|
||||||
|
PermissionSystem? permission;
|
||||||
|
|
||||||
|
using var transaction = await _sqlServerContext.Database.BeginTransactionAsync();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var tempPermission = CreatePermissionSystemData(name, enabled);
|
||||||
|
await _sqlServerContext.PermissionSystems.AddAsync(tempPermission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await transaction.CommitAsync();
|
||||||
|
permission = tempPermission;
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
await transaction.RollbackAsync();
|
||||||
|
Logger.Error(exception, $"[PermissionService][CreatePermissionSystemAsync]");
|
||||||
|
throw new CreateException($"An error occurred while creating the permission for transaction ID {transaction.TransactionId}.", exception);
|
||||||
|
}
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<bool?> HandleEnabledPermissionSystem(PermissionSystem permission, bool enabled)
|
||||||
|
{
|
||||||
|
bool? updated = false;
|
||||||
|
|
||||||
|
using (var transaction = _sqlServerContext.Database.BeginTransactionAsync())
|
||||||
|
{
|
||||||
|
permission.Enabled = enabled;
|
||||||
|
permission.UpdateTime = DateTime.UtcNow;
|
||||||
|
_sqlServerContext.Update(permission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await (await transaction).CommitAsync();
|
||||||
|
updated = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return updated;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<bool?> DeletePermissionSystemAsync(PermissionSystem permission)
|
||||||
|
{
|
||||||
|
bool? deleted = false;
|
||||||
|
|
||||||
|
using (var transaction = _sqlServerContext.Database.BeginTransactionAsync())
|
||||||
|
{
|
||||||
|
permission.IsDeleted = true;
|
||||||
|
permission.DeletionTime = DateTime.UtcNow;
|
||||||
|
_sqlServerContext.Update(permission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await (await transaction).CommitAsync();
|
||||||
|
deleted = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return deleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region "PermissionModule"
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<PermissionModule?> GetPermissionModuleByGuidAsync(string guid)
|
||||||
|
{
|
||||||
|
return await this.GetPermissionModulesQueryable().Where(x => x.Guid == guid).FirstOrDefaultAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<PermissionModule?> GetPermissionModuleByNameAsync(string name)
|
||||||
|
{
|
||||||
|
return await this.GetPermissionModulesQueryable().Where(x => x.Name == name).FirstOrDefaultAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<PermissionModule?> CreatePermissionModuleAsync(string name, bool enabled)
|
||||||
|
{
|
||||||
|
PermissionModule? permission;
|
||||||
|
|
||||||
|
using var transaction = await _sqlServerContext.Database.BeginTransactionAsync();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var tempPermission = CreatePermissionModuleData(name, enabled);
|
||||||
|
await _sqlServerContext.PermissionModules.AddAsync(tempPermission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await transaction.CommitAsync();
|
||||||
|
permission = tempPermission;
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
await transaction.RollbackAsync();
|
||||||
|
Logger.Error(exception, $"[PermissionService][CreatePermissionModuleAsync]");
|
||||||
|
throw new CreateException($"An error occurred while creating the permission for transaction ID {transaction.TransactionId}.", exception);
|
||||||
|
}
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<bool?> HandleEnabledPermissionModuleAsync(PermissionModule permission, bool enabled)
|
||||||
|
{
|
||||||
|
bool? updated = false;
|
||||||
|
|
||||||
|
using (var transaction = _sqlServerContext.Database.BeginTransactionAsync())
|
||||||
|
{
|
||||||
|
permission.Enabled = enabled;
|
||||||
|
permission.UpdateTime = DateTime.UtcNow;
|
||||||
|
_sqlServerContext.Update(permission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await (await transaction).CommitAsync();
|
||||||
|
updated = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return updated;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<bool?> DeletePermissionModuleAsync(PermissionModule permission)
|
||||||
|
{
|
||||||
|
bool? deleted = false;
|
||||||
|
|
||||||
|
using (var transaction = _sqlServerContext.Database.BeginTransactionAsync())
|
||||||
|
{
|
||||||
|
permission.IsDeleted = true;
|
||||||
|
permission.DeletionTime = DateTime.UtcNow;
|
||||||
|
_sqlServerContext.Update(permission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await (await transaction).CommitAsync();
|
||||||
|
deleted = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return deleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region "PermissionOperation"
|
||||||
|
|
||||||
|
public async Task<PermissionOperation?> GetPermissionOperationByGuidAsync(string guid)
|
||||||
|
{
|
||||||
|
return await this.GetPermissionOperationsQueryable().Where(x => x.Guid == guid).FirstOrDefaultAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<PermissionOperation?> GetPermissionOperationByNameAsync(string name)
|
||||||
|
{
|
||||||
|
return await this.GetPermissionOperationsQueryable().Where(x => x.Name == name).FirstOrDefaultAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<PermissionOperation?> CreatePermissionOperationAsync(string name)
|
||||||
|
{
|
||||||
|
PermissionOperation? permission;
|
||||||
|
|
||||||
|
using var transaction = await _sqlServerContext.Database.BeginTransactionAsync();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var tempPermission = CreatePermissionOperationData(name);
|
||||||
|
await _sqlServerContext.PermissionOperations.AddAsync(tempPermission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await transaction.CommitAsync();
|
||||||
|
permission = tempPermission;
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
await transaction.RollbackAsync();
|
||||||
|
Logger.Error(exception, $"[PermissionService][CreatePermissionOperationAsync]");
|
||||||
|
throw new CreateException($"An error occurred while creating the permission for transaction ID {transaction.TransactionId}.", exception);
|
||||||
|
}
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<bool?> DeletePermissionOperationAsync(PermissionOperation permission)
|
||||||
|
{
|
||||||
|
bool? deleted = false;
|
||||||
|
|
||||||
|
using (var transaction = _sqlServerContext.Database.BeginTransactionAsync())
|
||||||
|
{
|
||||||
|
permission.IsDeleted = true;
|
||||||
|
permission.DeletionTime = DateTime.UtcNow;
|
||||||
|
_sqlServerContext.Update(permission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await (await transaction).CommitAsync();
|
||||||
|
deleted = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return deleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region "PermissionSystemModule"
|
||||||
|
|
||||||
|
public async Task<PermissionSystemModule?> GetPermissionSystemModuleByGuidAsync(string guid)
|
||||||
|
{
|
||||||
|
return await this.GetPermissionSystemModulesQueryable().Where(x => x.Guid == guid).FirstOrDefaultAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<PermissionSystemModule?> CreatePermissionSystemModuleAsync(
|
||||||
|
PermissionSystem permissionSystem,
|
||||||
|
PermissionModule permissionModule,
|
||||||
|
bool enabled
|
||||||
|
)
|
||||||
|
{
|
||||||
|
PermissionSystemModule? permission;
|
||||||
|
|
||||||
|
using var transaction = await _sqlServerContext.Database.BeginTransactionAsync();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var tempPermission = CreatePermissionSystemModuleData(permissionSystem, permissionModule, enabled);
|
||||||
|
await _sqlServerContext.PermissionSystemModules.AddAsync(tempPermission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await transaction.CommitAsync();
|
||||||
|
permission = tempPermission;
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
await transaction.RollbackAsync();
|
||||||
|
Logger.Error(exception, $"[PermissionService][CreatePermissionSystemModuleAsync]");
|
||||||
|
throw new CreateException($"An error occurred while creating the permission for transaction ID {transaction.TransactionId}.", exception);
|
||||||
|
}
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<bool?> HandleEnabledPermissionSystemModuleAsync(PermissionSystemModule permission, bool enabled)
|
||||||
|
{
|
||||||
|
bool? updated = false;
|
||||||
|
|
||||||
|
using (var transaction = _sqlServerContext.Database.BeginTransactionAsync())
|
||||||
|
{
|
||||||
|
permission.Enabled = enabled;
|
||||||
|
permission.UpdateTime = DateTime.UtcNow;
|
||||||
|
_sqlServerContext.Update(permission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await (await transaction).CommitAsync();
|
||||||
|
updated = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return updated;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<bool?> DeletePermissionSystemModuleAsync(PermissionSystemModule permission)
|
||||||
|
{
|
||||||
|
bool? deleted = false;
|
||||||
|
|
||||||
|
using (var transaction = _sqlServerContext.Database.BeginTransactionAsync())
|
||||||
|
{
|
||||||
|
permission.IsDeleted = true;
|
||||||
|
permission.DeletionTime = DateTime.UtcNow;
|
||||||
|
_sqlServerContext.Update(permission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await (await transaction).CommitAsync();
|
||||||
|
deleted = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return deleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region "PermissionSystemModuleOperation"
|
||||||
|
|
||||||
|
public async Task<PermissionSystemModuleOperation?> GetPermissionSystemModuleOperationByGuidAsync(string guid)
|
||||||
|
{
|
||||||
|
return await this.GetPermissionSystemModuleOperationsQueryable().Where(x => x.Guid == guid).FirstOrDefaultAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<PermissionSystemModuleOperation?> CreatePermissionSystemModuleOperationAsync(
|
||||||
|
PermissionSystemModule permissionSystemModule,
|
||||||
|
PermissionOperation permissionOperation,
|
||||||
|
bool enabled
|
||||||
|
)
|
||||||
|
{
|
||||||
|
PermissionSystemModuleOperation? permission;
|
||||||
|
|
||||||
|
using var transaction = await _sqlServerContext.Database.BeginTransactionAsync();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var tempPermission = CreatePermissionSystemModuleOperationData(permissionSystemModule, permissionOperation, enabled);
|
||||||
|
await _sqlServerContext.PermissionSystemModuleOperations.AddAsync(tempPermission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await transaction.CommitAsync();
|
||||||
|
permission = tempPermission;
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
await transaction.RollbackAsync();
|
||||||
|
Logger.Error(exception, $"[PermissionService][CreatePermissionSystemModuleOperationAsync]");
|
||||||
|
throw new CreateException($"An error occurred while creating the permission for transaction ID {transaction.TransactionId}.", exception);
|
||||||
|
}
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<bool?> HandleEnabledPermissionSystemModuleOperationAsync(PermissionSystemModuleOperation permission, bool enabled)
|
||||||
|
{
|
||||||
|
bool? updated = false;
|
||||||
|
|
||||||
|
using (var transaction = _sqlServerContext.Database.BeginTransactionAsync())
|
||||||
|
{
|
||||||
|
permission.Enabled = enabled;
|
||||||
|
permission.UpdateTime = DateTime.UtcNow;
|
||||||
|
_sqlServerContext.Update(permission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await (await transaction).CommitAsync();
|
||||||
|
updated = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return updated;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<bool?> DeletePermissionSystemModuleOperationAsync(PermissionSystemModuleOperation permission)
|
||||||
|
{
|
||||||
|
bool? deleted = false;
|
||||||
|
|
||||||
|
using (var transaction = _sqlServerContext.Database.BeginTransactionAsync())
|
||||||
|
{
|
||||||
|
permission.IsDeleted = true;
|
||||||
|
permission.DeletionTime = DateTime.UtcNow;
|
||||||
|
_sqlServerContext.Update(permission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await (await transaction).CommitAsync();
|
||||||
|
deleted = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return deleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region "RolePermissionSystemModuleOperation"
|
||||||
|
|
||||||
|
public async Task<RolePermissionSystemModuleOperation?> GetRolePermissionSystemModuleOperationByGuidAsync(string guid)
|
||||||
|
{
|
||||||
|
return await this.GetRolePermissionSystemModuleOperationsQueryable().Where(x => x.Guid == guid).FirstOrDefaultAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<RolePermissionSystemModuleOperation?> CreateRolePermissionSystemModuleOperationAsync(
|
||||||
|
Role role,
|
||||||
|
PermissionSystemModuleOperation permissionSystemModuleOperation,
|
||||||
|
bool enabled
|
||||||
|
)
|
||||||
|
{
|
||||||
|
RolePermissionSystemModuleOperation? permission;
|
||||||
|
|
||||||
|
using var transaction = await _sqlServerContext.Database.BeginTransactionAsync();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var tempPermission = CreateRolePermissionSystemModuleOperationData(role, permissionSystemModuleOperation, enabled);
|
||||||
|
await _sqlServerContext.RolePermissionSystemModuleOperations.AddAsync(tempPermission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await transaction.CommitAsync();
|
||||||
|
permission = tempPermission;
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
await transaction.RollbackAsync();
|
||||||
|
Logger.Error(exception, $"[PermissionService][RolePermissionSystemModuleOperation]");
|
||||||
|
throw new CreateException($"An error occurred while creating the permission for transaction ID {transaction.TransactionId}.", exception);
|
||||||
|
}
|
||||||
|
return permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<bool?> HandleEnabledRolePermissionSystemModuleOperationAsync(RolePermissionSystemModuleOperation permission, bool active)
|
||||||
|
{
|
||||||
|
bool? updated = false;
|
||||||
|
|
||||||
|
using (var transaction = _sqlServerContext.Database.BeginTransactionAsync())
|
||||||
|
{
|
||||||
|
permission.Active = active;
|
||||||
|
permission.UpdateTime = DateTime.UtcNow;
|
||||||
|
_sqlServerContext.Update(permission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await (await transaction).CommitAsync();
|
||||||
|
updated = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return updated;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<bool?> DeleteRolePermissionSystemModuleOperationAsync(RolePermissionSystemModuleOperation permission)
|
||||||
|
{
|
||||||
|
bool? deleted = false;
|
||||||
|
|
||||||
|
using (var transaction = _sqlServerContext.Database.BeginTransactionAsync())
|
||||||
|
{
|
||||||
|
permission.IsDeleted = true;
|
||||||
|
permission.DeletionTime = DateTime.UtcNow;
|
||||||
|
_sqlServerContext.Update(permission);
|
||||||
|
await _sqlServerContext.SaveChangesAsync();
|
||||||
|
await (await transaction).CommitAsync();
|
||||||
|
deleted = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return deleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user