Gremlin/Gremlin_BlazorServer/Pages/Accounts/Index.razor

82 lines
2.7 KiB
Plaintext

@page "/Accounts/Index"
@using Gremlin_BlazorServer.Data.EntityClasses;
@using Gremlin_BlazorServer.Services;
@inject AccountService AccountService
<h1>Accounts</h1>
<div class="text-center bg-blue-100">
<input class="border-4 w-1/3 rounded m-6 p-6 h-8
border-blue-300" @bind-value="SearchAccount"
@bind-value:event="oninput" placeholder="Search by AccountName"
@onchange="SearchAccount_OnChange"/>
</div>
<NavLink class="nav-link" href="Accounts/Add">
<span class="oi oi-plus" aria-hidden="true">Add New Account</span>
</NavLink>
@if (allAccounts is null)
{
<p><em>Loading... !</em></p>
}
else
{
<p>Es wurden @filteredAccounts.Count Accounts gefunden.</p>
@if (allAccounts != null)
{
<table class="table">
<thead>
<tr>
<th>@nameof(Account.AccountId)</th>
<th>@nameof(Account.AccountName)</th>
<th>@nameof(Account.Street)</th>
<th>@nameof(Account.Zip)</th>
<th>@nameof(Account.City)</th>
<th>@nameof(Account.SapAccountNumber)</th>
</tr>
</thead>
<tbody>
@foreach (Account account in filteredAccounts)
{<tr>
<td>@account.AccountId</td>
<td>@account.AccountName</td>
<td>@account.Street</td>
<td>@account.Zip</td>
<td>@account.City</td>
<td>@account.SapAccountNumber</td>
<td>
<a class="nav-link" href="Accounts/Edit/@account.AccountId">
<span class="oi oi-pencil" aria-hidden="true">Edit</span>
</a>
<a class="nav-link" href="Accounts/Delete/@account.AccountId">
<span class="oi oi-trash" aria-hidden="true">Delete</span>
</a>
</td>
</tr>}
</tbody>
</table>
}
}
@code {
public string SearchAccount = "";
List<Account> allAccounts = new();
List<Account> filteredAccounts = new();
protected override async Task OnInitializedAsync()
{
allAccounts = await Task.Run(() => AccountService.GetAllAccountsAsync());
filteredAccounts = allAccounts;
}
private void SearchAccount_OnChange()
{
filteredAccounts = allAccounts.Where(a => a.AccountName.ToLower().Contains(SearchAccount.ToLower())).ToList();
}
}