Files
monorepo/LCU.WebApps.Indirect.ReserveManagementSystem/WebApp/ReserveManagementSystemUI/Pages/History.razor.cs
T
2026-03-17 08:54:34 -05:00

84 lines
2.3 KiB
C#

using Microsoft.AspNetCore.Components;
using System.Collections.Generic;
using System.Threading.Tasks;
using Blazored.Modal;
using Blazored.Toast.Services;
using Blazored.Modal.Services;
using Models = ReserveManagementSystemLib.Models;
using ReserveManagementSystemUI.Helpers;
using ReserveManagementSystemUI.Services;
using ReserveManagementSystemUI.Shared.Components;
namespace ReserveManagementSystemUI.Pages
{
public partial class History : ComponentBase
{
[Inject]
private ReserveService ReserveService { get; set; }
[Inject]
IToastService ToastService { get; set; }
[Inject]
IModalService Modal { get; set; }
[Inject]
GridHelpers GridHelpers { get; set; }
private List<Models.AuditHistory> reserveHistory = new List<Models.AuditHistory>();
private bool ascending;
private string currentSortedHeader;
private IModalReference openModal;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
openModal = Modal.Show<LoadingSpinner>();
await LoadHistoryData();
}
await base.OnAfterRenderAsync(firstRender);
}
private async Task<bool> LoadHistoryData()
{
var result = true;
reserveHistory = await ReserveService.GetHistory();
if (reserveHistory == null)
{
ToastService.ShowError("There was an issue retrieving history data.");
reserveHistory = new List<Models.AuditHistory>();
result = false;
}
StateHasChanged();
openModal.Close();
return result;
}
private void OnSortClick(string sortBy)
{
var sameClick = sortBy == currentSortedHeader;
if (sameClick)
{
ascending = !ascending;
}
if (ascending)
{
reserveHistory = GridHelpers.OrderByAscending(reserveHistory, sortBy);
}
else
{
reserveHistory = GridHelpers.OrderByDescending(reserveHistory, sortBy);
}
currentSortedHeader = sortBy;
StateHasChanged();
}
}
}