using Blazorise.DataGrid;
using FoodsharingSiegen.Contracts.Entity;
using FoodsharingSiegen.Server.Data.Service;
using Microsoft.AspNetCore.Components;
namespace FoodsharingSiegen.Server.Pages
{
public partial class Users
{
////////////////////////////////////////////////////////////////////////////////////////////////////
/// Gets or sets the user service.
///
/// The user service.
////////////////////////////////////////////////////////////////////////////////////////////////////
[Inject] public UserService UserService { get; set; } = null!;
private List? UserList { get; set; }
public DataGrid UserDataGrid { get; set; }
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
await LoadUsers();
await base.OnAfterRenderAsync(firstRender);
}
private async Task LoadUsers()
{
var usersR = await UserService.GetUsersAsync();
if (usersR.Success) UserList = usersR.Data;
await InvokeAsync(StateHasChanged);
}
private async Task RowUpdated(SavedRowItem> arg)
{
if (arg.Item?.Id == null || arg.Item.Id.Equals(Guid.Empty) || arg.Values?.Any() != true) return;
await UserService.Update(arg.Item);
}
private async Task RowInserted(SavedRowItem> arg)
{
var addUserR = await UserService.AddUserAsync(arg.Item);
if (!addUserR.Success)
{
// Error Toast
}
else
{
await LoadUsers();
}
}
}
}