diff --git a/MP.Data/Controllers/MpStatsController.cs b/MP.Data/Controllers/MpStatsController.cs index d02a1c02..a1ebf01f 100644 --- a/MP.Data/Controllers/MpStatsController.cs +++ b/MP.Data/Controllers/MpStatsController.cs @@ -167,10 +167,16 @@ namespace MP.Data.Controllers /// /// Elenco tabella DDB da filtro /// - /// - /// + /// + /// + /// + /// + /// + /// + /// + /// /// - public List StatDdbGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo) + public List StatDdbGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo, int FirstRecord, int NumRecord) { List dbResult = new List(); @@ -180,15 +186,37 @@ namespace MP.Data.Controllers var idxODL = new SqlParameter("@IdxODL", IdxODL); var keyRichiesta = new SqlParameter("@KeyRichiesta", KeyRichiesta); var codArticolo = new SqlParameter("@CodArticolo", CodArticolo); + var firstRecord = new SqlParameter("@FirstRecord", FirstRecord); + var numRecord = new SqlParameter("@NumRecord", NumRecord); dbResult = dbCtx .DbSetDdbTurni - .FromSqlRaw("EXEC stp_UI_DDBTurni_GetByFilter @dataFrom,@dataTo,@idxMacchina,@IdxODL,@KeyRichiesta,@CodArticolo", dataFrom, dataTo, idxMacchina, idxODL, keyRichiesta, codArticolo) + .FromSqlRaw("EXEC stp_UI_DDBTurni_GetByFilter @dataFrom,@dataTo,@idxMacchina,@IdxODL,@KeyRichiesta,@CodArticolo,@FirstRecord,@NumRecord", dataFrom, dataTo, idxMacchina, idxODL, keyRichiesta, codArticolo, firstRecord, numRecord) .ToList(); return dbResult; } + /// + /// Elenco tabella DDB da filtro + /// + /// + /// + /// + /// + /// + /// + /// + public int StatDdbGetCount(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo) + { + var dbResult = dbCtx + .DbSetDdbTurni + .Where(x => (x.IdxMacchina == IdxMacchina || IdxMacchina == "*") && (x.IdxOdl == IdxODL || IdxODL == -999) && (x.KeyRichiesta == KeyRichiesta || KeyRichiesta == "*") && (x.CodArticolo == CodArticolo || CodArticolo == "*") && (x.InizioPeriodo >= DataStart && x.InizioPeriodo <= DataEnd)) + .Count(); + + return dbResult; + } + /// /// Elenco tabella ODL da filtro /// diff --git a/MP.Stats/MP.Stats.csproj b/MP.Stats/MP.Stats.csproj index ad113c8f..656f4e78 100644 --- a/MP.Stats/MP.Stats.csproj +++ b/MP.Stats/MP.Stats.csproj @@ -4,7 +4,7 @@ net5.0 MP.Stats 826e877c-ba70-4253-84cb-d0b1cafd4440 - 1.0.2106.1716 + 1.0.2106.1914 diff --git a/MP.Stats/Pages/Diario.razor.cs b/MP.Stats/Pages/Diario.razor.cs index 7d658435..109581d3 100644 --- a/MP.Stats/Pages/Diario.razor.cs +++ b/MP.Stats/Pages/Diario.razor.cs @@ -54,18 +54,7 @@ namespace MP.Stats.Pages [Inject] protected MpStatsService StatService { get; set; } - protected int totalCount - { - get - { - int answ = 0; - if (SearchRecords != null) - { - answ = SearchRecords.Count; - } - return answ; - } - } + protected int totalCount { get; set; } = 0; #endregion Protected Properties @@ -74,7 +63,9 @@ namespace MP.Stats.Pages private async Task reloadData() { isLoading = true; + totalCount = await StatService.StatDdbGetCount(currFilter, MessageService.SearchVal); SearchRecords = await StatService.StatDdbGetAll(currFilter, MessageService.SearchVal); + // faccio paginazione SOLO NELLA DECINA attuale... (quindi non tutte le pagine ma solo subset) ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList(); isLoading = false; }