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));
|
if (modelBuilder == null) throw new ArgumentNullException(nameof(modelBuilder));
|
||||||
modelBuilder.Entity<MembersMember>()
|
modelBuilder.Entity<MembersMember>()
|
||||||
.HasKey(bc => new { bc.MemberId, AttachedMemberId = bc.AttachedMemberId });
|
.HasKey(bc => new { bc.MemberId, bc.AttachedMemberId });
|
||||||
modelBuilder.Entity<MembersMember>()
|
modelBuilder.Entity<MembersMember>()
|
||||||
.HasOne(bc => bc.AttachedMember)
|
.HasOne(bc => bc.AttachedMember)
|
||||||
.WithMany(b => b!.MemberOf)
|
.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);
|
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();
|
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)
|
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
|
namespace UserService.DatabaseLayer.Repositories
|
||||||
{
|
{
|
||||||
@ -7,5 +14,12 @@ namespace UserService.DatabaseLayer.Repositories
|
|||||||
public SecurityGroupsRepository() : base(x => x.SecurityGroups)
|
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)"
|
TextField="@((item) => item.CommonName)"
|
||||||
ValueField="@((item) => item)"
|
ValueField="@((item) => item)"
|
||||||
SearchChanged="@OnSearchChanged"
|
SearchChanged="@OnSearchChanged"
|
||||||
Placeholder="Username" SelectedValue="@SelectedMember"/>
|
Placeholder="Username"
|
||||||
|
SelectedValueChanged="@MySearchHandler"
|
||||||
|
SelectedValue="@SelectedMember" />
|
||||||
</Addon>
|
</Addon>
|
||||||
<Addon AddonType="AddonType.End">
|
<Addon AddonType="AddonType.End">
|
||||||
<Button Clicked="@AddToListAsync" Color="Color.Primary">Ok</Button>
|
<Button Clicked="@AddToListAsync" Color="Color.Primary">Ok</Button>
|
||||||
@ -121,37 +123,26 @@ else
|
|||||||
<Row>
|
<Row>
|
||||||
<Column ColumnSize="ColumnSize.Is12">
|
<Column ColumnSize="ColumnSize.Is12">
|
||||||
<Table Narrow="true" FullWidth="true">
|
<Table Narrow="true" FullWidth="true">
|
||||||
<TableHeader>
|
<TableHeader>
|
||||||
<TableRow>
|
<TableRow>
|
||||||
<TableHeaderCell>#</TableHeaderCell>
|
<TableHeaderCell>#</TableHeaderCell>
|
||||||
<TableHeaderCell>Common Name</TableHeaderCell>
|
<TableHeaderCell>Common Name</TableHeaderCell>
|
||||||
<TableHeaderCell></TableHeaderCell>
|
<TableHeaderCell></TableHeaderCell>
|
||||||
</TableRow>
|
</TableRow>
|
||||||
</TableHeader>
|
</TableHeader>
|
||||||
<TableBody>
|
<TableBody>
|
||||||
@foreach (var member in SelectedSecurityGroup?.Members ?? Enumerable.Empty<MembersMember>())
|
@foreach (var member in SelectedSecurityGroup?.Members ?? Enumerable.Empty<MembersMember>())
|
||||||
{
|
{
|
||||||
<TableRow>
|
<TableRow>
|
||||||
<TableRowHeader>@member.MemberId</TableRowHeader>
|
<TableRowHeader>@member.MemberId</TableRowHeader>
|
||||||
<TableRowCell>Mark</TableRowCell>
|
<TableRowCell>@member.AttachedMember.CommonName</TableRowCell>
|
||||||
<TableRowCell>
|
<TableRowCell>
|
||||||
<Button Color="Color.Danger">Delete</Button>
|
<Button Color="Color.Danger">Delete</Button>
|
||||||
</TableRowCell>
|
</TableRowCell>
|
||||||
</TableRow>
|
</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>
|
</TableBody>
|
||||||
</Table>
|
</Table>
|
||||||
</Column>
|
</Column>
|
||||||
</Row>
|
</Row>
|
||||||
|
|
||||||
|
@ -50,8 +50,7 @@ namespace UserService.Pages
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected override async Task RowUpdatingCallback(
|
protected override async Task RowUpdatingCallback(CancellableRowChange<SecurityGroup, Dictionary<string, object>> arg)
|
||||||
CancellableRowChange<SecurityGroup, Dictionary<string, object>> arg)
|
|
||||||
{
|
{
|
||||||
if (arg == null) throw new ArgumentNullException(nameof(arg));
|
if (arg == null) throw new ArgumentNullException(nameof(arg));
|
||||||
var securityGroup = arg.Item;
|
var securityGroup = arg.Item;
|
||||||
@ -64,8 +63,11 @@ namespace UserService.Pages
|
|||||||
|
|
||||||
protected async Task MySearchHandler(object arg)
|
protected async Task MySearchHandler(object arg)
|
||||||
{
|
{
|
||||||
var result = arg is Member addedMember ? addedMember.CommonName : "Fuck";
|
if (arg is Member addedMember)
|
||||||
await JsRuntime.AlertAsync(result).ConfigureAwait(false);
|
{
|
||||||
|
SelectedMember = addedMember;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async Task OnSearchChanged(string arg)
|
protected async Task OnSearchChanged(string arg)
|
||||||
@ -91,7 +93,17 @@ namespace UserService.Pages
|
|||||||
|
|
||||||
protected async Task AddToListAsync()
|
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