using MesaFabApproval.Client.Services; using MesaFabApproval.Shared.Models; using Microsoft.AspNetCore.Components; using Microsoft.Extensions.Caching.Memory; using MudBlazor; namespace MesaFabApproval.Client.Pages; public partial class PCRBAll { [Inject] IPCRBService pcrbService { get; set; } [Inject] ISnackbar snackbar { get; set; } [Inject] IMemoryCache cache { get; set; } [Inject] NavigationManager navigationManager { get; set; } private bool inProcess = false; private string searchString = ""; private IEnumerable allPCRBs = new List(); protected override async Task OnParametersSetAsync() { inProcess = true; try { cache.Set("redirectUrl", "pcrb/all"); if (pcrbService is null) { throw new Exception("PCRB service not injected!"); } else { allPCRBs = await pcrbService.GetAllPCRBs(false); } } catch (Exception ex) { snackbar.Add(ex.Message, Severity.Error); } inProcess = false; } private bool FilterFuncForTable(PCRB pcrb) => FilterFunc(pcrb, searchString); private bool FilterFunc(PCRB pcrb, string searchString) { if (string.IsNullOrWhiteSpace(searchString)) return true; if (pcrb.Title.ToLower().Contains(searchString.Trim().ToLower())) return true; if (pcrb.OwnerName.ToLower().Contains(searchString.Trim().ToLower())) return true; if (pcrb.Type.ToLower().Contains(searchString.Trim().ToLower())) return true; if (GetStageName(pcrb.CurrentStep).ToLower().Contains(searchString.Trim().ToLower())) return true; if (pcrb.PlanNumber.ToString().Contains(searchString.Trim())) return true; return false; } private void GoTo(string page) { cache.Set("redirectUrl", page); navigationManager.NavigateTo(page); } private string GetStageName(int step) { if (step >= PCRB.Stages.Length || step < 0) return ""; return PCRB.Stages[step]; } }