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 MRBAll { [Inject] IMRBService mrbService { 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 allMrbs = new List(); protected override async Task OnParametersSetAsync() { inProcess = true; try { cache.Set("redirectUrl", "mrb/all"); if (mrbService is null) { throw new Exception("MRB service not injected!"); } else { allMrbs = await mrbService.GetAllMRBs(false); } } catch (Exception ex) { snackbar.Add(ex.Message, Severity.Error); } inProcess = false; } private bool FilterFuncForTable(MRB mrb) => FilterFunc(mrb, searchString); private bool FilterFunc(MRB mrb, string searchString) { if (string.IsNullOrWhiteSpace(searchString)) return true; if (mrb.Title.ToLower().Contains(searchString.Trim().ToLower())) return true; if (mrb.OriginatorName.ToLower().Contains(searchString.Trim().ToLower())) return true; if (mrb.MRBNumber.ToString().Contains(searchString.Trim())) return true; return false; } private void GoTo(string page) { cache.Set("redirectUrl", page); navigationManager.NavigateTo(page); } }