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 reserveHistory = new List(); private bool ascending; private string currentSortedHeader; private IModalReference openModal; protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { openModal = Modal.Show(); await LoadHistoryData(); } await base.OnAfterRenderAsync(firstRender); } private async Task LoadHistoryData() { var result = true; reserveHistory = await ReserveService.GetHistory(); if (reserveHistory == null) { ToastService.ShowError("There was an issue retrieving history data."); reserveHistory = new List(); 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(); } } }