using EgwCoreLib.Razor; using Microsoft.AspNetCore.Components; using MP.Data.DbModels; using MP.Data.Services; using System; using System.Collections.Generic; using System.Linq; namespace MP.Land.Components { public partial class DbInfoMan { #region Protected Properties [Inject] protected LandDataService LDService { get; set; } protected List ListRecord { get; set; } = new List(); #endregion Protected Properties #region Protected Methods protected override void OnParametersSet() { ReloadData(); } protected void SortRequested(Sorter.SortCallBack e) { if (sortField == e.ParamName) { sortAsc = e.IsAscending; } sortField = e.ParamName; RefreshDisplay(); } #endregion Protected Methods #region Private Fields private bool sortAsc = true; private string sortField = ""; #endregion Private Fields #region Private Methods private void RefreshDisplay() { // se ho ordinamento riordino... if (!string.IsNullOrEmpty(sortField)) { switch (sortField) { case "DbName": if (sortAsc) { ListRecord = ListRecord.OrderBy(x => x.DbName).ToList(); } else { ListRecord = ListRecord.OrderByDescending(x => x.DbName).ToList(); } break; case "DbSizeMb": if (sortAsc) { ListRecord = ListRecord.OrderBy(x => x.DbSizeMb).ToList(); } else { ListRecord = ListRecord.OrderByDescending(x => x.DbSizeMb).ToList(); } break; case "NumTable": if (sortAsc) { ListRecord = ListRecord.OrderBy(x => x.NumTables).ToList(); } else { ListRecord = ListRecord.OrderByDescending(x => x.NumTables).ToList(); } break; case "BigTable": if (sortAsc) { ListRecord = ListRecord.OrderBy(x => x.BigTable).ToList(); } else { ListRecord = ListRecord.OrderByDescending(x => x.BigTable).ToList(); } break; case "BigTableRows": if (sortAsc) { ListRecord = ListRecord.OrderBy(x => x.BigTableRows).ToList(); } else { ListRecord = ListRecord.OrderByDescending(x => x.BigTableRows).ToList(); } break; default: ListRecord = ListRecord.OrderBy(x => x.DbName).ToList(); break; } } } private void ReloadData() { ListRecord = LDService.AllDbInfo(); } #endregion Private Methods } }