using Blazored.Modal; using Blazored.Modal.Services; using Blazored.Toast.Services; using Microsoft.AspNetCore.Components; using ReserveManagementSystemLib.Models; using ReserveManagementSystemUI.Services; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace ReserveManagementSystemUI.Shared.Components { public partial class ImportBanner: ComponentBase { [Inject] ReserveService ReserveService { get; set; } [Inject] IToastService ToastService { get; set; } [Inject] IModalService Modal { get; set; } public Import Import = new Import(); public bool Loaded = false; public string ResultClass => Import.Success ? "alert-success" : "alert-danger"; [Parameter] public bool Refresh { get; set; } protected override async Task OnParametersSetAsync() { if (Refresh) { await GetImport(); } } protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { await GetImport(); } await base.OnAfterRenderAsync(firstRender); } public async Task GetImport() { var result = true; Import = (await ReserveService.GetRecentImports(1)).FirstOrDefault(); if (Import == null) { ToastService.ShowError("There was an issue retrieving import data."); Import = new Import(); result = false; } Loaded = true; StateHasChanged(); return result; } public string GetCompletedText() { if (Import.EndDate.HasValue) { return $"Completed {Import.EndDate?.ToString("M/d/yyyy h:mm tt")}, "; } return string.Empty; } public string GetResultText() { if (Import.Success) { return $"Processed {Import.RecordCount} records"; } if (!Import.Success && Import.RecordCount > 0) { return $"Processed {Import.RecordCount} records, but only saved {Import.RecordsSaved}"; } return $"Failed to process"; } } }