Moved from int id to guid

This commit is contained in:
2020-09-08 20:10:56 +02:00
parent 05efdf51de
commit 31ef9bf45b
16 changed files with 221 additions and 216 deletions

View File

@ -10,32 +10,32 @@ namespace UserService.DatabaseLayer.DataModels
public static void Seed(this ModelBuilder modelBuilder)
{
if (modelBuilder == null) throw new ArgumentNullException(nameof(modelBuilder));
var groups = new OrganizationUnit { CommonName = "Groups", Id = -1 };
var users = new OrganizationUnit { CommonName = "Users", Id = -2 };
var germany = new OrganizationUnit{CommonName = "Germany", Id = -6, ParentId = -2};
var usa = new OrganizationUnit{CommonName = "USA", Id = -5, ParentId = -2};
var arizona = new OrganizationUnit{CommonName = "Arizona" , Id = -4, ParentId = -5 };
var france = new OrganizationUnit{CommonName = "France" , Id = -3, ParentId = -2 };
var groups = new OrganizationUnit { CommonName = "Groups", Id = Guid.NewGuid() };
var users = new OrganizationUnit { CommonName = "Users", Id = Guid.NewGuid() };
var germany = new OrganizationUnit { CommonName = "Germany", Id = Guid.NewGuid(), ParentId = users.Id };
var usa = new OrganizationUnit { CommonName = "USA", Id = Guid.NewGuid(), ParentId = users.Id };
var arizona = new OrganizationUnit { CommonName = "Arizona", Id = Guid.NewGuid(), ParentId = usa.Id };
var france = new OrganizationUnit { CommonName = "France", Id = Guid.NewGuid(), ParentId = users.Id };
modelBuilder.Entity<OrganizationUnit>().HasData(users, groups, germany, usa, arizona, france);
var user = new User { CommonName = Environment.UserName, IsActive = true, Id = -7, ParentId = users.Id };
var user = new User { CommonName = Environment.UserName, IsActive = true, Id = Guid.NewGuid(), ParentId = users.Id };
modelBuilder.Entity<User>().HasData(user);
var secGroup = new SecurityGroup { CommonName = "Global Admin", Id = -8, ParentId = groups.Id };
var secGroup = new SecurityGroup { CommonName = "Global Admin", Id = Guid.NewGuid(), ParentId = groups.Id };
modelBuilder.Entity<SecurityGroup>().HasData(secGroup);
modelBuilder.Entity<UserMember>()
.HasData(new UserMember { MemberId = secGroup.Id, UserId = user.Id });
modelBuilder.Entity<MembersMember>()
.HasData(new MembersMember { MemberId = secGroup.Id, AttachedMemberId = user.Id });
}
public static void CreateRelations(this ModelBuilder modelBuilder)
{
if (modelBuilder == null) throw new ArgumentNullException(nameof(modelBuilder));
modelBuilder.Entity<UserMember>()
.HasKey(bc => new { bc.MemberId, bc.UserId });
modelBuilder.Entity<UserMember>()
.HasOne(bc => bc.User)
modelBuilder.Entity<MembersMember>()
.HasKey(bc => new { bc.MemberId, AttachedMemberId = bc.AttachedMemberId });
modelBuilder.Entity<MembersMember>()
.HasOne(bc => bc.AttachedMember)
.WithMany(b => b!.MemberOf)
.HasForeignKey(bc => bc.UserId);
modelBuilder.Entity<UserMember>()
.HasForeignKey(bc => bc.AttachedMemberId);
modelBuilder.Entity<MembersMember>()
.HasOne(bc => bc.Member)
.WithMany(c => c!.Members)
.HasForeignKey(bc => bc.MemberId);
@ -64,13 +64,13 @@ namespace UserService.DatabaseLayer.DataModels
public static class SecurityGroupExtensions
{
public static IEnumerable<User> GetUsers(this SecurityGroup securityGroup)
public static IEnumerable<Member> GetAttachedMembers(this SecurityGroup securityGroup)
{
if (securityGroup == null) throw new ArgumentNullException(nameof(securityGroup));
foreach (var userMember in securityGroup.Members)
{
if (userMember.User is null) continue;
yield return userMember.User;
if (userMember.AttachedMember is null) continue;
yield return userMember.AttachedMember;
}
}

View File

@ -7,7 +7,7 @@ namespace UserService.DatabaseLayer.DataModels
{
public DbSet<User> Users { get; set; } = null!;
public DbSet<SecurityGroup> SecurityGroups { get; set; } = null!;
public DbSet<UserMember> UserMembers { get; set; } = null!;
public DbSet<MembersMember> UserMembers { get; set; } = null!;
public DbSet<OrganizationUnit> OrganizationUnits { get; set; } = null!;
protected override void OnConfiguring(DbContextOptionsBuilder options)