From a5e0100cab17853cb234f648b47c1eaa002d6fd1 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 13 Sep 2021 18:15:59 +0200 Subject: [PATCH] Fix ricerca con paginazione da DB --- MP.Prog/Data/FileArchDataService.cs | 3 ++- MP.Prog/Data/SelectData.cs | 12 ++++++++++++ MP.Prog/Pages/Archive.razor.cs | 12 +++++------- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/MP.Prog/Data/FileArchDataService.cs b/MP.Prog/Data/FileArchDataService.cs index c7248b9a..6e645401 100644 --- a/MP.Prog/Data/FileArchDataService.cs +++ b/MP.Prog/Data/FileArchDataService.cs @@ -238,7 +238,8 @@ namespace MP.Prog.Data List dbResult = new List(); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); - dbResult = dbController.FileGetFilt(CurrFilter.IdxMacchina, CurrFilter.OnlyActive, CurrFilter.OnlyMod, CurrFilter.FirstRecord, CurrFilter.PageSize * 10, CurrFilter.SearchVal).ToList(); + dbResult = dbController.FileGetFilt(CurrFilter.IdxMacchina, CurrFilter.OnlyActive, CurrFilter.OnlyMod, CurrFilter.NumSkip, CurrFilter.PageSize, CurrFilter.SearchVal).ToList(); + //dbResult = dbController.FileGetFilt(CurrFilter.IdxMacchina, CurrFilter.OnlyActive, CurrFilter.OnlyMod, CurrFilter.FirstRecord, CurrFilter.PageSize * 10, CurrFilter.SearchVal).ToList(); stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; Log.Info($"Effettuata lettura da DB + caching per FileGetFilt: {ts.TotalMilliseconds} ms"); diff --git a/MP.Prog/Data/SelectData.cs b/MP.Prog/Data/SelectData.cs index 01db4a56..f1b36f0e 100644 --- a/MP.Prog/Data/SelectData.cs +++ b/MP.Prog/Data/SelectData.cs @@ -26,6 +26,18 @@ namespace MP.Prog.Data } public string IdxMacchina { get; set; } = ""; + + /// + /// Recorda da saltare x arrivare alla pagina corrente + /// + public int NumSkip + { + get + { + return PageSize * (PageNum - 1); + } + } + public bool OnlyActive { get; set; } = true; public bool OnlyMod { get; set; } = false; diff --git a/MP.Prog/Pages/Archive.razor.cs b/MP.Prog/Pages/Archive.razor.cs index 74a73790..ca727309 100644 --- a/MP.Prog/Pages/Archive.razor.cs +++ b/MP.Prog/Pages/Archive.razor.cs @@ -19,7 +19,6 @@ namespace MP.Prog.Pages private FileModel currRecord = null; private List ListRecords; private List MacList; - private List SearchRecords; private List TagList; #endregion Private Fields @@ -222,7 +221,6 @@ namespace MP.Prog.Pages { isLoading = true; currRecord = null; - SearchRecords = null; ListRecords = null; //var pUpd = Task.Run(async () => //{ @@ -242,7 +240,6 @@ namespace MP.Prog.Pages protected async Task ForceCheck(int numDays) { currRecord = null; - SearchRecords = null; ListRecords = null; // importante altrimenti NON mostra update UI await Task.Delay(1); @@ -300,9 +297,11 @@ namespace MP.Prog.Pages // importante altrimenti NON mostra update UI await Task.Delay(1); totalCount = await DataService.FileCountFilt(AppMService.File_Filter); - SearchRecords = await DataService.FileGetFilt(AppMService.File_Filter); - // faccio paginazione SOLO NELLA DECINA attuale... (quindi non tutte le pagine ma solo subset) - ListRecords = SearchRecords.Skip(numRecord * (currPage % 10 - 1)).Take(numRecord).ToList(); + //SearchRecords = await DataService.FileGetFilt(AppMService.File_Filter); + //// faccio paginazione SOLO NELLA DECINA attuale... (quindi non tutte le pagine ma solo subset) + //ListRecords = SearchRecords.Skip(numRecord * (currPage % 10 - 1)).Take(numRecord).ToList(); + + ListRecords = await DataService.FileGetFilt(AppMService.File_Filter); } protected void ResetData() @@ -314,7 +313,6 @@ namespace MP.Prog.Pages protected async Task ResetFilter() { currRecord = null; - SearchRecords = null; ListRecords = null; AppMService.File_Filter = SelectData.Init(5, 10); SearchTag = defTag;