Fix ricerca con paginazione da DB

This commit is contained in:
Samuele Locatelli
2021-09-13 18:15:59 +02:00
parent 6940a68c0c
commit a5e0100cab
3 changed files with 19 additions and 8 deletions
+2 -1
View File
@@ -238,7 +238,8 @@ namespace MP.Prog.Data
List<FileData.DatabaseModels.FileModel> dbResult = new List<FileData.DatabaseModels.FileModel>();
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");
+12
View File
@@ -26,6 +26,18 @@ namespace MP.Prog.Data
}
public string IdxMacchina { get; set; } = "";
/// <summary>
/// Recorda da saltare x arrivare alla pagina corrente
/// </summary>
public int NumSkip
{
get
{
return PageSize * (PageNum - 1);
}
}
public bool OnlyActive { get; set; } = true;
public bool OnlyMod { get; set; } = false;
+5 -7
View File
@@ -19,7 +19,6 @@ namespace MP.Prog.Pages
private FileModel currRecord = null;
private List<FileModel> ListRecords;
private List<MacchinaModel> MacList;
private List<FileModel> SearchRecords;
private List<TagModel> 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;