Files
2026-03-17 08:54:34 -05:00

94 lines
2.4 KiB
C#

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<bool> 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";
}
}
}