diff --git a/.idea/.idea.UserService/.idea/codeStyles/codeStyleConfig.xml b/.idea/.idea.UserService/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..a55e7a1
--- /dev/null
+++ b/.idea/.idea.UserService/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/UserService.DatabaseLayer/DataModels/ModelBuilderExtensions.cs b/UserService.DatabaseLayer/DataModels/ModelBuilderExtensions.cs
index d1583a5..f5aacf7 100644
--- a/UserService.DatabaseLayer/DataModels/ModelBuilderExtensions.cs
+++ b/UserService.DatabaseLayer/DataModels/ModelBuilderExtensions.cs
@@ -30,7 +30,7 @@ namespace UserService.DatabaseLayer.DataModels
{
if (modelBuilder == null) throw new ArgumentNullException(nameof(modelBuilder));
modelBuilder.Entity()
- .HasKey(bc => new { bc.MemberId, AttachedMemberId = bc.AttachedMemberId });
+ .HasKey(bc => new { bc.MemberId, bc.AttachedMemberId });
modelBuilder.Entity()
.HasOne(bc => bc.AttachedMember)
.WithMany(b => b!.MemberOf)
diff --git a/UserService.DatabaseLayer/Repositories/BaseRepository.cs b/UserService.DatabaseLayer/Repositories/BaseRepository.cs
index 127e8d2..36819f9 100644
--- a/UserService.DatabaseLayer/Repositories/BaseRepository.cs
+++ b/UserService.DatabaseLayer/Repositories/BaseRepository.cs
@@ -26,10 +26,10 @@ namespace UserService.DatabaseLayer.Repositories
return await Context(db).Include(x => x.Parent).WhereOrDefault(predicate).ToListAsync(token).ConfigureAwait(false);
}
- public async Task GetAsync(Expression> predicate, CancellationToken token = default)
+ public virtual async Task GetAsync(Expression> predicate, CancellationToken token = default)
{
await using var db = new UserServiceDbContext();
- return await Context(db).FirstOrDefaultAsync(predicate, token).ConfigureAwait(false);
+ return await Context(db).Include(x => x.Parent).FirstOrDefaultAsync(predicate, token).ConfigureAwait(false);
}
public async Task AddAsync(T entity, CancellationToken token = default)
diff --git a/UserService.DatabaseLayer/Repositories/SecurityGroupsRepository.cs b/UserService.DatabaseLayer/Repositories/SecurityGroupsRepository.cs
index 17b09c9..cebc343 100644
--- a/UserService.DatabaseLayer/Repositories/SecurityGroupsRepository.cs
+++ b/UserService.DatabaseLayer/Repositories/SecurityGroupsRepository.cs
@@ -1,4 +1,11 @@
-using UserService.Infrastructure.DataModels;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.EntityFrameworkCore;
+using UserService.DatabaseLayer.DataModels;
+using UserService.Infrastructure.DataModels;
namespace UserService.DatabaseLayer.Repositories
{
@@ -7,5 +14,12 @@ namespace UserService.DatabaseLayer.Repositories
public SecurityGroupsRepository() : base(x => x.SecurityGroups)
{
}
+
+ public override async Task> GetAllAsync(Expression>? predicate = null, CancellationToken token = default)
+ {
+ await using var db = new UserServiceDbContext();
+ return await Context(db).Include(x => x.Parent).WhereOrDefault(predicate).ToListAsync(token).ConfigureAwait(false);
+ }
+
}
}
\ No newline at end of file
diff --git a/UserService/Pages/SecurityGroups.razor b/UserService/Pages/SecurityGroups.razor
index 617bded..5ff271f 100644
--- a/UserService/Pages/SecurityGroups.razor
+++ b/UserService/Pages/SecurityGroups.razor
@@ -110,7 +110,9 @@ else
TextField="@((item) => item.CommonName)"
ValueField="@((item) => item)"
SearchChanged="@OnSearchChanged"
- Placeholder="Username" SelectedValue="@SelectedMember"/>
+ Placeholder="Username"
+ SelectedValueChanged="@MySearchHandler"
+ SelectedValue="@SelectedMember" />
@@ -121,37 +123,26 @@ else
-
-
- #
- Common Name
-
-
-
+
+
+ #
+ Common Name
+
+
+
@foreach (var member in SelectedSecurityGroup?.Members ?? Enumerable.Empty())
{
@member.MemberId
- Mark
+ @member.AttachedMember.CommonName
}
-
-
- 2
- Jacob
-
-
-
- 3
- Larry
-
-
-
+
diff --git a/UserService/Pages/SecurityGroups.razor.cs b/UserService/Pages/SecurityGroups.razor.cs
index 282915c..8e6b0c3 100644
--- a/UserService/Pages/SecurityGroups.razor.cs
+++ b/UserService/Pages/SecurityGroups.razor.cs
@@ -50,8 +50,7 @@ namespace UserService.Pages
}
///
- protected override async Task RowUpdatingCallback(
- CancellableRowChange> arg)
+ protected override async Task RowUpdatingCallback(CancellableRowChange> arg)
{
if (arg == null) throw new ArgumentNullException(nameof(arg));
var securityGroup = arg.Item;
@@ -64,8 +63,11 @@ namespace UserService.Pages
protected async Task MySearchHandler(object arg)
{
- var result = arg is Member addedMember ? addedMember.CommonName : "Fuck";
- await JsRuntime.AlertAsync(result).ConfigureAwait(false);
+ if (arg is Member addedMember)
+ {
+ SelectedMember = addedMember;
+ }
+
}
protected async Task OnSearchChanged(string arg)
@@ -91,7 +93,17 @@ namespace UserService.Pages
protected async Task AddToListAsync()
{
- //SelectedSecurityGroup.Members.Add(new UserMember());
+ if (SelectedMember is null) return;
+ if (SelectedSecurityGroup is null) return;
+ SelectedSecurityGroup.Members.Add(new MembersMember
+ {
+ MemberId = SelectedSecurityGroup.Id,
+ Member = SelectedSecurityGroup,
+ AttachedMemberId = SelectedMember.Id,
+ AttachedMember = SelectedMember
+ });
+ SelectedMember = default;
+ //await SecurityGroupsRepository.UpdateAsync(SelectedSecurityGroup).ConfigureAwait(false);
}