feature: save members of security group
This commit is contained in:
parent
31ef9bf45b
commit
baec3160af
5
.idea/.idea.UserService/.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
5
.idea/.idea.UserService/.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
@ -0,0 +1,5 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<state>
|
||||
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
|
||||
</state>
|
||||
</component>
|
@ -30,7 +30,7 @@ namespace UserService.DatabaseLayer.DataModels
|
||||
{
|
||||
if (modelBuilder == null) throw new ArgumentNullException(nameof(modelBuilder));
|
||||
modelBuilder.Entity<MembersMember>()
|
||||
.HasKey(bc => new { bc.MemberId, AttachedMemberId = bc.AttachedMemberId });
|
||||
.HasKey(bc => new { bc.MemberId, bc.AttachedMemberId });
|
||||
modelBuilder.Entity<MembersMember>()
|
||||
.HasOne(bc => bc.AttachedMember)
|
||||
.WithMany(b => b!.MemberOf)
|
||||
|
@ -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<T?> GetAsync(Expression<Func<T, bool>> predicate, CancellationToken token = default)
|
||||
public virtual async Task<T?> GetAsync(Expression<Func<T, bool>> 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)
|
||||
|
@ -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<IReadOnlyList<SecurityGroup>> GetAllAsync(Expression<Func<SecurityGroup, bool>>? 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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -110,7 +110,9 @@ else
|
||||
TextField="@((item) => item.CommonName)"
|
||||
ValueField="@((item) => item)"
|
||||
SearchChanged="@OnSearchChanged"
|
||||
Placeholder="Username" SelectedValue="@SelectedMember"/>
|
||||
Placeholder="Username"
|
||||
SelectedValueChanged="@MySearchHandler"
|
||||
SelectedValue="@SelectedMember" />
|
||||
</Addon>
|
||||
<Addon AddonType="AddonType.End">
|
||||
<Button Clicked="@AddToListAsync" Color="Color.Primary">Ok</Button>
|
||||
@ -121,37 +123,26 @@ else
|
||||
<Row>
|
||||
<Column ColumnSize="ColumnSize.Is12">
|
||||
<Table Narrow="true" FullWidth="true">
|
||||
<TableHeader>
|
||||
<TableRow>
|
||||
<TableHeaderCell>#</TableHeaderCell>
|
||||
<TableHeaderCell>Common Name</TableHeaderCell>
|
||||
<TableHeaderCell></TableHeaderCell>
|
||||
</TableRow>
|
||||
</TableHeader>
|
||||
<TableHeader>
|
||||
<TableRow>
|
||||
<TableHeaderCell>#</TableHeaderCell>
|
||||
<TableHeaderCell>Common Name</TableHeaderCell>
|
||||
<TableHeaderCell></TableHeaderCell>
|
||||
</TableRow>
|
||||
</TableHeader>
|
||||
<TableBody>
|
||||
@foreach (var member in SelectedSecurityGroup?.Members ?? Enumerable.Empty<MembersMember>())
|
||||
{
|
||||
<TableRow>
|
||||
<TableRowHeader>@member.MemberId</TableRowHeader>
|
||||
<TableRowCell>Mark</TableRowCell>
|
||||
<TableRowCell>@member.AttachedMember.CommonName</TableRowCell>
|
||||
<TableRowCell>
|
||||
<Button Color="Color.Danger">Delete</Button>
|
||||
</TableRowCell>
|
||||
</TableRow>
|
||||
}
|
||||
|
||||
<TableRow>
|
||||
<TableRowHeader>2</TableRowHeader>
|
||||
<TableRowCell>Jacob</TableRowCell>
|
||||
<TableRowCell><Button>Delete</Button></TableRowCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableRowHeader>3</TableRowHeader>
|
||||
<TableRowCell>Larry</TableRowCell>
|
||||
<TableRowCell><Button>Delete</Button></TableRowCell>
|
||||
</TableRow>
|
||||
</TableBody>
|
||||
</Table>
|
||||
</Table>
|
||||
</Column>
|
||||
</Row>
|
||||
|
||||
|
@ -50,8 +50,7 @@ namespace UserService.Pages
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override async Task RowUpdatingCallback(
|
||||
CancellableRowChange<SecurityGroup, Dictionary<string, object>> arg)
|
||||
protected override async Task RowUpdatingCallback(CancellableRowChange<SecurityGroup, Dictionary<string, object>> 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);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user