using EgwControlCenter.Core; using EgwControlCenter.Core.DTO; using Microsoft.AspNetCore.Components; namespace EgwControlCenter.App.Components.Compo { public partial class ApplicationCheck : IDisposable { #region Public Properties [Parameter] public EventCallback EC_GotoSetup { get; set; } #endregion Public Properties #region Public Methods public void Dispose() { ACService.EA_StatusUpdated -= ACService_EA_StatusUpdated; } #endregion Public Methods #region Protected Properties [Inject] protected AppControlService ACService { get; set; } = null!; protected bool ShowOnlyUpdate { get => showOnlyUpdate; set { showOnlyUpdate = value; ForceReload(); } } #endregion Protected Properties #region Protected Methods protected void ForceCheck() { ACService.DoFullCheck(true); } protected override void OnInitialized() { ACService.EA_StatusUpdated += ACService_EA_StatusUpdated; } protected override void OnParametersSet() { ForceReload(); } protected void SetNumRec(int newNum) { numRecord = newNum; currPage = 1; ForceReload(); } protected void SetPage(int newNum) { currPage = newNum; ForceReload(); } protected async void ToggleSetup() { await EC_GotoSetup.InvokeAsync(true); } #endregion Protected Methods #region Private Properties private int currPage { get; set; } = 1; private List CurrRecords { get => ACService.ListAppStatus; } private bool isLoading { get; set; } = false; private List? SearchRecords { get; set; } = null; private List? ListRecords { get; set; } = null; private int numRecord { get; set; } = 5; private bool showOnlyUpdate { get; set; } = true; private int totalCount { get; set; } = 0; #endregion Private Properties #region Private Methods private void ACService_EA_StatusUpdated() { ForceReload(); } private void ForceReload() { SearchRecords = CurrRecords .Where(x => x.HasUpdate || !ShowOnlyUpdate) .ToList(); totalCount = SearchRecords.Count; ListRecords = SearchRecords .Skip(numRecord * (currPage - 1)) .Take(numRecord) .ToList(); } #endregion Private Methods } }