UserService/UserService/Pages/Directory.razor.cs

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();
}
}
}