47 lines
1.4 KiB
C#
47 lines
1.4 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.AspNetCore.Components;
|
|
using UserService.DatabaseLayer.Repository;
|
|
using UserService.Infrastructure.DataModels;
|
|
|
|
namespace UserService.Pages
|
|
{
|
|
public class DirectoryBase : ComponentBase
|
|
{
|
|
private Node? _selectedNode;
|
|
public IReadOnlyList<Node>? OrganizationUnits { get; set; }
|
|
|
|
public Node? SelectedNode
|
|
{
|
|
get => _selectedNode;
|
|
set
|
|
{
|
|
if(Equals(_selectedNode, value)) return;
|
|
_selectedNode = value;
|
|
OnSelectedNodeChanged(value);
|
|
}
|
|
}
|
|
|
|
private async void OnSelectedNodeChanged(Node? value)
|
|
{
|
|
if (value == null) return;
|
|
Members = await UsersRepository.GetAllAsync(x => x.ParentId == value.Id).ConfigureAwait(false);
|
|
}
|
|
|
|
public IReadOnlyList<Member>? Members { get; set; }
|
|
|
|
[Inject] public IOrganizationUnitsRepository OuRepository { get; set; } = null!;
|
|
|
|
[Inject] public IUsersRepository UsersRepository { get; set; } = null!;
|
|
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
OrganizationUnits = (await OuRepository.GetAllAsync().ConfigureAwait(false))
|
|
.Where(x => x.Parent is null)
|
|
.ToList();
|
|
}
|
|
|
|
}
|
|
} |