46 lines
2.1 KiB
C#
46 lines
2.1 KiB
C#
using _0_Framework.Application;
|
|
using AccountManagement.Domain.SubAccountPermissionSubtitle1Agg;
|
|
using AccountManagement.Domain.SubAccountPermissionSubtitle2Agg;
|
|
using AccountManagement.Domain.SubAccountPermissionSubtitle3Agg;
|
|
using AccountManagement.Domain.SubAccountPermissionSubtitle4Agg;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
|
|
namespace AccountMangement.Infrastructure.EFCore.Seed
|
|
{
|
|
public static class SubAccountPermissionSeeder
|
|
{
|
|
public static void Seed(ModelBuilder builder)
|
|
{
|
|
|
|
|
|
PropertyInfo[] properties = typeof(SubAccountPermissionHelper).GetProperties(BindingFlags.Static | BindingFlags.Public);
|
|
var permissionsList = properties
|
|
.Where(x => x.PropertyType == typeof(SubAccountPermissionDto)).Select(x => (SubAccountPermissionDto)x.GetValue(null)).ToList();
|
|
|
|
List<SubAccountPermissionSubtitle1> result1 = permissionsList.Where(x => x.ParentId == 0)
|
|
.Select(x => new SubAccountPermissionSubtitle1(x.Name, x.Code) { id = x.Id }).ToList();
|
|
|
|
|
|
List<SubAccountPermissionSubtitle2> result2 = permissionsList.Where(x => result1.Any(y => y.id == x.ParentId))
|
|
.Select(x => new SubAccountPermissionSubtitle2(x.Name, x.Code, x.ParentId) { id = x.Id }).ToList();
|
|
|
|
|
|
List<SubAccountPermissionSubtitle3> result3 = permissionsList.Where(x => result2.Any(y => y.id == x.ParentId))
|
|
.Select(x => new SubAccountPermissionSubtitle3(x.Name, x.Code, x.ParentId) { id = x.Id }).ToList();
|
|
|
|
|
|
List<SubAccountPermissionSubtitle4> result4 = permissionsList.Where(x => result3.Any(y => y.id == x.ParentId))
|
|
.Select(x => new SubAccountPermissionSubtitle4(x.Name, x.Code, x.ParentId) { id = x.Id }).ToList();
|
|
|
|
builder.Entity<SubAccountPermissionSubtitle1>().HasData(result1);
|
|
builder.Entity<SubAccountPermissionSubtitle2>().HasData(result2);
|
|
builder.Entity<SubAccountPermissionSubtitle3>().HasData(result3);
|
|
builder.Entity<SubAccountPermissionSubtitle4>().HasData(result4);
|
|
|
|
}
|
|
}
|
|
}
|