udpate paginazione dati solo decina apgine correnti
This commit is contained in:
@@ -35,6 +35,11 @@ namespace MP.FileData.Controllers
|
||||
|
||||
#region Public Methods
|
||||
|
||||
public static string rulePath(string ruleName)
|
||||
{
|
||||
return string.Format($"Conf/{ruleName}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua la comparazione tra i file in archivio ed i file attuali e segna info LastCheck e Changed (se cambiati)
|
||||
/// </summary>
|
||||
@@ -152,6 +157,19 @@ namespace MP.FileData.Controllers
|
||||
dbCtx.Dispose();
|
||||
}
|
||||
|
||||
public int FileCountFilt(string IdxMacchina, bool OnlyActive, bool OnlyMod, string SearchVal = "")
|
||||
{
|
||||
int answ = 0;
|
||||
using (MoonPro_ProgContext localDbCtx = new MoonPro_ProgContext(_configuration))
|
||||
{
|
||||
answ = localDbCtx
|
||||
.DbSetProgFile
|
||||
.Where(x => (x.IdxMacchina == IdxMacchina || IdxMacchina == "0") && (x.Active == OnlyActive || !OnlyActive) && (!OnlyMod || x.DiskStatus != FileState.Ok) && (x.Name.Contains(SearchVal) || string.IsNullOrEmpty(SearchVal)))
|
||||
.Count();
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ELiminazione file da tabella
|
||||
/// </summary>
|
||||
@@ -232,7 +250,7 @@ namespace MP.FileData.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
public List<DatabaseModels.FileModel> FileGetFilt(string IdxMacchina, string CodArticolo, bool OnlyActive, bool OnlyMod, string SearchVal = "")
|
||||
public List<DatabaseModels.FileModel> FileGetFilt(string IdxMacchina, bool OnlyActive, bool OnlyMod, int numStart, int numRecords, string SearchVal = "")
|
||||
{
|
||||
List<DatabaseModels.FileModel> dbResult = new List<DatabaseModels.FileModel>();
|
||||
using (MoonPro_ProgContext localDbCtx = new MoonPro_ProgContext(_configuration))
|
||||
@@ -243,6 +261,8 @@ namespace MP.FileData.Controllers
|
||||
.Include(t => t.Tags)
|
||||
.Where(x => (x.IdxMacchina == IdxMacchina || IdxMacchina == "0") && (x.Active == OnlyActive || !OnlyActive) && (!OnlyMod || x.DiskStatus != FileState.Ok) && (x.Name.Contains(SearchVal) || string.IsNullOrEmpty(SearchVal)))
|
||||
.OrderByDescending(x => x.LastMod)
|
||||
.Skip(numStart)
|
||||
.Take(numRecords)
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
@@ -348,6 +368,8 @@ namespace MP.FileData.Controllers
|
||||
public bool FileModApprove(FileModel currFile)
|
||||
{
|
||||
bool done = false;
|
||||
// recupero file regole json da macchina..
|
||||
|
||||
List<FileInfo> listUpdate = new List<FileInfo>();
|
||||
using (MoonPro_ProgContext localDbCtx = new MoonPro_ProgContext(_configuration))
|
||||
{
|
||||
@@ -355,40 +377,39 @@ namespace MP.FileData.Controllers
|
||||
var newFileInfo = new FileInfo(currFile.Path);
|
||||
listUpdate.Add(newFileInfo);
|
||||
|
||||
// fixme todo !!! fix da conf file
|
||||
Dictionary<string, string> confReplace = new Dictionary<string, string>();
|
||||
confReplace.Add("(", " ");
|
||||
confReplace.Add(")", " ");
|
||||
|
||||
Dictionary<string, string> fileExtReplace = new Dictionary<string, string>();
|
||||
fileExtReplace.Add(".P-2", "");
|
||||
|
||||
// hard coded + salvataggio conf x creare json
|
||||
SearchRules currRule = new SearchRules()
|
||||
var currMacchina = localDbCtx
|
||||
.DbSetMacchine
|
||||
.Where(x => x.IdxMacchina == currFile.IdxMacchina)
|
||||
.SingleOrDefault();
|
||||
if (currMacchina != null)
|
||||
{
|
||||
Name = "Commento Filename",
|
||||
Mode = SearchMode.StringOnFile,
|
||||
MaxChar2Search = 100,
|
||||
ReplaceCR = true,
|
||||
RegExPattern = "\\b{{fileName}}" + @".{0,2}\([\w\d\s.]+\)",
|
||||
RegExRepFileName = true,
|
||||
ExcludedTags = new List<string>() { "M4", "M5", "M4+A", "M4+B", "M5+A", "M5+B" },
|
||||
FileNameExtReplace = fileExtReplace,
|
||||
OutReplace = confReplace,
|
||||
OutExcludeFileName = true
|
||||
};
|
||||
// gestione confRule...
|
||||
SearchRules currRule = new SearchRules();
|
||||
try
|
||||
{
|
||||
string rawData = File.ReadAllText(rulePath(currMacchina.RuleName));
|
||||
currRule = JsonConvert.DeserializeObject<SearchRules>(rawData);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in deserializzazione conf rule{Environment.NewLine}{exc}");
|
||||
}
|
||||
// se ho letto conf
|
||||
if (currRule.Name != "ND")
|
||||
{
|
||||
// inserisco come REVISIONE
|
||||
FileInsert(currFile.IdxMacchina, listUpdate, currFile.Rev + 1, currRule);
|
||||
|
||||
// inserisco come REVISIONE
|
||||
FileInsert(currFile.IdxMacchina, listUpdate, currFile.Rev + 1, currRule);
|
||||
// archivio vecchio file
|
||||
currFile.Active = false;
|
||||
currFile.DiskStatus = FileState.Ok;
|
||||
localDbCtx.Entry(currFile).State = EntityState.Modified;
|
||||
// salvo DB
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
// archivio vecchio file
|
||||
currFile.Active = false;
|
||||
currFile.DiskStatus = FileState.Ok;
|
||||
localDbCtx.Entry(currFile).State = EntityState.Modified;
|
||||
// salvo DB
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
done = true;
|
||||
done = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return done;
|
||||
}
|
||||
@@ -443,7 +464,7 @@ namespace MP.FileData.Controllers
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua update di un record in archivio da lista (solo status, da
|
||||
/// Effettua update di un record in archivio da lista (solo status, da approvare)
|
||||
/// </summary>
|
||||
/// <param name="updFiles"></param>
|
||||
/// <returns></returns>
|
||||
@@ -470,7 +491,7 @@ namespace MP.FileData.Controllers
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Aggiorna un record FILE
|
||||
/// Aggiorna un record FILE rileggendo e ricalcolando...
|
||||
/// </summary>
|
||||
/// <param name="updItem"></param>
|
||||
/// <returns></returns>
|
||||
@@ -481,11 +502,16 @@ namespace MP.FileData.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
// elenco Tags
|
||||
List<TagModel> currTags = localDbCtx.DbSetTags.ToList();
|
||||
|
||||
// file
|
||||
FileModel currData = null;
|
||||
currData = dbCtx
|
||||
.DbSetProgFile
|
||||
.Where(x => x.FileId == updItem.FileId)
|
||||
.FirstOrDefault();
|
||||
|
||||
if (currData != null)
|
||||
{
|
||||
updItem.DiskStatus = FileState.Changed;
|
||||
|
||||
@@ -12,6 +12,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Diagnostics;
|
||||
using MP.FileData.Controllers;
|
||||
|
||||
namespace MP.Prog.Data
|
||||
{
|
||||
@@ -104,15 +105,6 @@ namespace MP.Prog.Data
|
||||
|
||||
#endregion Private Properties
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected string rulePath(string ruleName)
|
||||
{
|
||||
return string.Format($"Conf/{ruleName}");
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Internal Methods
|
||||
|
||||
internal Task FileApprove(FileData.DatabaseModels.FileModel currItem)
|
||||
@@ -224,17 +216,29 @@ namespace MP.Prog.Data
|
||||
dbController.Dispose();
|
||||
}
|
||||
|
||||
public async Task<int> FileCountFilt(SelectData CurrFilter)
|
||||
{
|
||||
int numCount = 0;
|
||||
Stopwatch stopWatch = new Stopwatch();
|
||||
stopWatch.Start();
|
||||
numCount = dbController.FileCountFilt(CurrFilter.IdxMacchina, CurrFilter.OnlyActive, CurrFilter.OnlyMod, CurrFilter.SearchVal);
|
||||
stopWatch.Stop();
|
||||
TimeSpan ts = stopWatch.Elapsed;
|
||||
Log.Info($"Effettuata lettura da DB + caching per FileCountFilt: {ts.TotalMilliseconds} ms");
|
||||
return await Task.FromResult(numCount);
|
||||
}
|
||||
|
||||
public Task<FileData.DatabaseModels.FileModel> FileGetByKey(int FileId)
|
||||
{
|
||||
return Task.FromResult(dbController.FileGetByKey(FileId));
|
||||
}
|
||||
|
||||
public async Task<List<FileData.DatabaseModels.FileModel>> FileGetFilt(string IdxMacchina, string CodArticolo, bool OnlyActive, bool OnlyMod, string SearchVal)
|
||||
public async Task<List<FileData.DatabaseModels.FileModel>> FileGetFilt(SelectData CurrFilter)
|
||||
{
|
||||
List<FileData.DatabaseModels.FileModel> dbResult = new List<FileData.DatabaseModels.FileModel>();
|
||||
Stopwatch stopWatch = new Stopwatch();
|
||||
stopWatch.Start();
|
||||
dbResult = dbController.FileGetFilt(IdxMacchina, CodArticolo, OnlyActive, OnlyMod, 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");
|
||||
@@ -281,54 +285,56 @@ namespace MP.Prog.Data
|
||||
foreach (var item in listaMacchine.Where(x => !string.IsNullOrEmpty(x.BasePath)).ToList())
|
||||
{
|
||||
if (!string.IsNullOrEmpty(item.RuleName))
|
||||
{ }
|
||||
// gestione confRule...
|
||||
SearchRules currRule = new SearchRules();
|
||||
try
|
||||
{
|
||||
string rawData = File.ReadAllText(rulePath(ruleName));
|
||||
currRule = JsonConvert.DeserializeObject<SearchRules>(rawData);
|
||||
//Log.Info($"Conf rule acquisito da file {ruleName}:{Environment.NewLine}{rawData}");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in deserializzazione conf rule{Environment.NewLine}{exc}");
|
||||
}
|
||||
|
||||
// se NON deserializzato inizializzo hard-coded
|
||||
if (currRule.Name == "ND")
|
||||
{
|
||||
// fare: lettura conf rule x recupero tag x singola macchina
|
||||
//$"\\b{fileName}" + @".{0,2}\([\w\d\s.]+\)";
|
||||
|
||||
Dictionary<string, string> confReplace = new Dictionary<string, string>();
|
||||
confReplace.Add("(", " ");
|
||||
confReplace.Add(")", " ");
|
||||
|
||||
Dictionary<string, string> fileExtReplace = new Dictionary<string, string>();
|
||||
fileExtReplace.Add(".P-2", "");
|
||||
// hard coded + salvataggio conf x creare json
|
||||
currRule = new SearchRules()
|
||||
ruleName = item.RuleName;
|
||||
// gestione confRule...
|
||||
SearchRules currRule = new SearchRules();
|
||||
try
|
||||
{
|
||||
Name = "Commento Filename",
|
||||
Mode = SearchMode.StringOnFile,
|
||||
MaxChar2Search = 100,
|
||||
ReplaceCR = true,
|
||||
RegExPattern = "\\b{{fileName}}" + @".{0,2}\([\w\d\s./]+\)",
|
||||
RegExRepFileName = true,
|
||||
FileNameExtReplace = fileExtReplace,
|
||||
ExcludedTags = new List<string>() { "M4", "M5", "M4+A", "M4+B", "M5+A", "M5+B" },
|
||||
OutReplace = confReplace,
|
||||
OutExcludeFileName = true
|
||||
};
|
||||
string rawData = File.ReadAllText(FileController.rulePath(ruleName));
|
||||
currRule = JsonConvert.DeserializeObject<SearchRules>(rawData);
|
||||
//Log.Info($"Conf rule acquisito da file {ruleName}:{Environment.NewLine}{rawData}");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in deserializzazione conf rule{Environment.NewLine}{exc}");
|
||||
}
|
||||
|
||||
// serializzo
|
||||
// se NON deserializzato inizializzo hard-coded
|
||||
if (currRule.Name == "ND")
|
||||
{
|
||||
// fare: lettura conf rule x recupero tag x singola macchina
|
||||
//$"\\b{fileName}" + @".{0,2}\([\w\d\s.]+\)";
|
||||
|
||||
string rawRule = JsonConvert.SerializeObject(currRule, Formatting.Indented);
|
||||
Log.Info($"Conf rule generato:{Environment.NewLine}{rawRule}");
|
||||
Dictionary<string, string> confReplace = new Dictionary<string, string>();
|
||||
confReplace.Add("(", " ");
|
||||
confReplace.Add(")", " ");
|
||||
|
||||
Dictionary<string, string> fileExtReplace = new Dictionary<string, string>();
|
||||
fileExtReplace.Add(".P-2", "");
|
||||
// hard coded + salvataggio conf x creare json
|
||||
currRule = new SearchRules()
|
||||
{
|
||||
Name = "Commento Filename",
|
||||
Mode = SearchMode.StringOnFile,
|
||||
MaxChar2Search = 100,
|
||||
ReplaceCR = true,
|
||||
RegExPattern = "\\b{{fileName}}" + @".{0,2}\([\w\d\s./]+\)",
|
||||
RegExRepFileName = true,
|
||||
FileNameExtReplace = fileExtReplace,
|
||||
ExcludedTags = new List<string>() { "M4", "M5", "M4+A", "M4+B", "M5+A", "M5+B" },
|
||||
OutReplace = confReplace,
|
||||
OutExcludeFileName = true
|
||||
};
|
||||
|
||||
// serializzo
|
||||
|
||||
string rawRule = JsonConvert.SerializeObject(currRule, Formatting.Indented);
|
||||
Log.Info($"Conf rule generato:{Environment.NewLine}{rawRule}");
|
||||
}
|
||||
|
||||
checkDone += dbController.CheckFileArchived(item.IdxMacchina, item.BasePath, numDayPre, "*.*", currRule);
|
||||
}
|
||||
|
||||
checkDone += dbController.CheckFileArchived(item.IdxMacchina, item.BasePath, numDayPre, "*.*", currRule);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
|
||||
@@ -9,7 +9,6 @@ namespace MP.Prog.Data
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
public string CodArticolo { get; set; } = "";
|
||||
public DateTime DateEnd { get; set; } = DateTime.Now.AddMinutes(1);
|
||||
public DateTime DateStart { get; set; } = DateTime.Now.AddDays(-7);
|
||||
|
||||
@@ -32,6 +31,7 @@ namespace MP.Prog.Data
|
||||
|
||||
public int PageNum { get; set; } = 1;
|
||||
public int PageSize { get; set; } = 10;
|
||||
public string SearchVal { get; set; } = "";
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
@@ -69,7 +69,7 @@ namespace MP.Prog.Data
|
||||
return false;
|
||||
if (OnlyMod != item.OnlyMod)
|
||||
return false;
|
||||
if (CodArticolo != item.CodArticolo)
|
||||
if (SearchVal != item.SearchVal)
|
||||
return false;
|
||||
if (IdxMacchina != item.IdxMacchina)
|
||||
return false;
|
||||
|
||||
+34
-37
@@ -5,46 +5,28 @@
|
||||
<div class="card">
|
||||
<div class="card-header table-primary h3">
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-3 col-lg-4 h3">
|
||||
Elenco Programmi
|
||||
</div>
|
||||
<div class="col-12 col-md-9 col-lg-8 text-right">
|
||||
<div class="form-row">
|
||||
@*<div class="col-1">
|
||||
<div class="form-group mb-0">
|
||||
<button id="btnForceCheck" class="btn btn-danger btn-sm btn-block" @onclick="() => ForceCheck(0)" title="Forza verifica archivio (totale)">
|
||||
<i class="far fa-folder-open"></i> <i class="fas fa-sync-alt"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>*@
|
||||
<div class="col-3">
|
||||
<div class="col-12 col-lg-6">
|
||||
<div class="d-flex">
|
||||
<div class="px-2">
|
||||
<h3>Elenco Programmi</h3>
|
||||
</div>
|
||||
<div class="px-2">
|
||||
<div class="form-group mb-0">
|
||||
<button id="btnForceCheck" class="btn btn-warning btn-sm btn-block" @onclick="() => ForceCheck(30)" title="Analisi Modifiche ultimi 30gg">
|
||||
<i class="fas fa-sync-alt"></i> Cerca Modifiche (30 gg) <i class="far fa-folder-open"></i>
|
||||
<button id="btnForceCheck" class="btn btn-warning btn-sm" @onclick="() => ForceCheck(30)" title="Analisi Modifiche ultimi 30gg">
|
||||
<i class="fas fa-sync-alt"></i> Update (30gg) <i class="far fa-folder-open"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<div class="input-group input-group-sm">
|
||||
<div class="input-group-prepend">
|
||||
</div>
|
||||
<div class="custom-control custom-switch">
|
||||
<input type="checkbox" class="custom-control-input" id="togAttivi" title="Solo Attivi / Mostra tutti" @bind-value="@OnlyActive" checked="@OnlyActive" />
|
||||
<label class="custom-control-label small" for="togAttivi"><sub>Attivi</sub></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-lg-6 text-right">
|
||||
<div class="d-flex flex-row-reverse">
|
||||
<div class="px-2">
|
||||
<div class="form-group mb-0">
|
||||
<button id="btnReset" class="btn btn-info btn-sm" @onclick="() => ResetFilter()" title="Reset Filter"><span class="oi oi-loop-circular"></span></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<div class="input-group input-group-sm">
|
||||
<div class="input-group-prepend">
|
||||
</div>
|
||||
<div class="custom-control custom-switch">
|
||||
<input type="checkbox" class="custom-control-input" id="togModificati" title="Solo Aperti / Mostra tutti" @bind-value="@OnlyMod" checked="@OnlyMod" />
|
||||
<label class="custom-control-label small" for="togModificati"><sub>Mod</sub></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="px-2">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
@@ -62,9 +44,24 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<div class="form-group mb-0">
|
||||
<button id="btnReset" class="btn btn-info btn-sm btn-block" @onclick="() => ResetFilter()" title="Reset Filter"><span class="oi oi-loop-circular"></span></button>
|
||||
<div class="px-2">
|
||||
<div class="input-group input-group-sm">
|
||||
<div class="input-group-prepend">
|
||||
</div>
|
||||
<div class="custom-control custom-switch">
|
||||
<input type="checkbox" class="custom-control-input" id="togModificati" title="Solo Aperti / Mostra tutti" @bind-value="@OnlyMod" checked="@OnlyMod" />
|
||||
<label class="custom-control-label small" for="togModificati"><sub>Mod</sub></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-2">
|
||||
<div class="input-group input-group-sm">
|
||||
<div class="input-group-prepend">
|
||||
</div>
|
||||
<div class="custom-control custom-switch">
|
||||
<input type="checkbox" class="custom-control-input" id="togAttivi" title="Solo Attivi / Mostra tutti" @bind-value="@OnlyActive" checked="@OnlyActive" />
|
||||
<label class="custom-control-label small" for="togAttivi"><sub>Attivi</sub></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -78,7 +78,10 @@ namespace MP.Prog.Pages
|
||||
if (!AppMService.File_Filter.OnlyActive.Equals(value))
|
||||
{
|
||||
AppMService.File_Filter.OnlyActive = value;
|
||||
var pUpd = Task.Run(async () => await ReloadData());
|
||||
var pUpd = Task.Run(async () =>
|
||||
{
|
||||
await AsyncReload();
|
||||
});
|
||||
pUpd.Wait();
|
||||
}
|
||||
}
|
||||
@@ -100,7 +103,10 @@ namespace MP.Prog.Pages
|
||||
if (!AppMService.File_Filter.OnlyMod.Equals(value))
|
||||
{
|
||||
AppMService.File_Filter.OnlyMod = value;
|
||||
var pUpd = Task.Run(async () => await ReloadData());
|
||||
var pUpd = Task.Run(async () =>
|
||||
{
|
||||
await AsyncReload();
|
||||
});
|
||||
pUpd.Wait();
|
||||
}
|
||||
}
|
||||
@@ -122,7 +128,10 @@ namespace MP.Prog.Pages
|
||||
if (!AppMService.File_Filter.IdxMacchina.Equals(value))
|
||||
{
|
||||
AppMService.File_Filter.IdxMacchina = value;
|
||||
var pUpd = Task.Run(async () => await ReloadData());
|
||||
var pUpd = Task.Run(async () =>
|
||||
{
|
||||
await AsyncReload();
|
||||
});
|
||||
pUpd.Wait();
|
||||
}
|
||||
}
|
||||
@@ -209,6 +218,20 @@ namespace MP.Prog.Pages
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected async Task AsyncReload()
|
||||
{
|
||||
isLoading = true;
|
||||
currRecord = null;
|
||||
SearchRecords = null;
|
||||
ListRecords = null;
|
||||
//var pUpd = Task.Run(async () =>
|
||||
//{
|
||||
await ReloadData();
|
||||
isLoading = false;
|
||||
//});
|
||||
//pUpd.Wait();
|
||||
}
|
||||
|
||||
protected void Edit(FileModel selRecord)
|
||||
{
|
||||
// rileggo dal DB il record corrente...
|
||||
@@ -276,8 +299,8 @@ namespace MP.Prog.Pages
|
||||
isLoading = true;
|
||||
// importante altrimenti NON mostra update UI
|
||||
await Task.Delay(1);
|
||||
SearchRecords = await DataService.FileGetFilt(AppMService.File_Filter.IdxMacchina, AppMService.File_Filter.CodArticolo, AppMService.File_Filter.OnlyActive, AppMService.File_Filter.OnlyMod, AppMService.SearchVal);
|
||||
totalCount = SearchRecords.Count;
|
||||
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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user