PROG
- ok cancella - ok metodi API x check + approva salvando senza user - ok procedure insomnia salvate
This commit is contained in:
@@ -0,0 +1 @@
|
||||
{"_type":"export","__export_format":4,"__export_date":"2024-10-23T15:46:37.409Z","__export_source":"insomnia.desktop.app:v2023.5.8","resources":[{"_id":"req_d6789dcf78d94816bbd8572ed8e50c32","parentId":"wrk_e3f940b0e7364ede9659ddc904ed76da","modified":1680674272654,"created":1680674272654,"url":"https://localhost:7212/api/Recipe/GetRecipe?idxPODL=1656","name":"New Request","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1680616613017,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"wrk_e3f940b0e7364ede9659ddc904ed76da","parentId":null,"modified":1680674272619,"created":1680674272619,"name":"MP-IOC","description":"","scope":"collection","_type":"workspace"},{"_id":"req_0990f1f8b8054c6aa775c08233beb68a","parentId":"wrk_e3f940b0e7364ede9659ddc904ed76da","modified":1680674272646,"created":1680674272646,"url":"{{ _.BASE_URL }}/api/Recipe/GetRecipe?idxPODL=1656","name":"GET RECIPE (calc)","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1680615241541.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_86ef875060b240979a923807d5726572","parentId":"wrk_e3f940b0e7364ede9659ddc904ed76da","modified":1680674272651,"created":1680674272651,"url":"{{ BASE_URL }}/api/RecipeArchive/GetFile?idxMacc=SIMUL_02&fileName=10002.xml","name":"GET FILE (from archive)","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1679846511868.4375,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_80ed4f0bb8ac463b90112c98d457c478","parentId":"wrk_e3f940b0e7364ede9659ddc904ed76da","modified":1680679124960,"created":1680679120652,"url":"{{ BASE_URL }}/api/RecipeArchive/GetFile?idxMacc=SIMUL_02&fileName=999.xml","name":"GET FILE - not exists","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1679462147031.9062,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_ca021599ba8443c1a79a2eb69aa92128","parentId":"wrk_e3f940b0e7364ede9659ddc904ed76da","modified":1680674272620,"created":1680674272620,"name":"Base Environment","data":{},"dataPropertyOrder":{},"color":null,"isPrivate":false,"metaSortKey":1680615228640,"_type":"environment"},{"_id":"jar_8fed13ca3e9a477dad1b0a6699c43b70","parentId":"wrk_e3f940b0e7364ede9659ddc904ed76da","modified":1680674272634,"created":1680674272634,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_aaf61ce728e747a89c242f3c012bb23c","parentId":"wrk_e3f940b0e7364ede9659ddc904ed76da","modified":1680674272662,"created":1680674272637,"fileName":"MP-IOC","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_b5e3d19ecc18458b96877ecc73b04729","parentId":"env_ca021599ba8443c1a79a2eb69aa92128","modified":1680679494694,"created":1680674272621,"name":"DEV","data":{"BASE_URL":"https://localhost:7050"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":"#ff0000","isPrivate":false,"metaSortKey":1680615301619,"_type":"environment"},{"_id":"env_89e83800dd9d435ebe6745b4f80b2082","parentId":"env_ca021599ba8443c1a79a2eb69aa92128","modified":1680674621408,"created":1680674272628,"name":"IIS01","data":{"BASE_URL":"https://iis01.egalware.com/MP/IOC"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":"#6600ff","isPrivate":false,"metaSortKey":1680615328099,"_type":"environment"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"_type":"export","__export_format":4,"__export_date":"2024-10-23T15:45:49.150Z","__export_source":"insomnia.desktop.app:v2023.5.8","resources":[{"_id":"req_bb23a3e0a78f44999350ddcefebaaf82","parentId":"wrk_0d1a3f6f42fe486dacbeeea3026c648b","modified":1729691634502,"created":1729691518776,"url":"{{ _.BASE_URL }}/api/Health","name":"Health","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1680616613017,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"wrk_0d1a3f6f42fe486dacbeeea3026c648b","parentId":null,"modified":1729691518738,"created":1729691518738,"name":"MAPO-PROG","description":"","scope":"collection","_type":"workspace"},{"_id":"req_2b3ff677e75040ed9dfe30463fb5d408","parentId":"fld_cf0e8b6c31334d67bc421487d31a5540","modified":1729691689274,"created":1729691666872,"url":"{{ _.BASE_URL }}/api/FileChange","name":"FileChange Health","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1729691677997,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_cf0e8b6c31334d67bc421487d31a5540","parentId":"wrk_0d1a3f6f42fe486dacbeeea3026c648b","modified":1729691675552,"created":1729691673364,"name":"FileChange","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1680616270148.125,"_type":"request_group"},{"_id":"req_8fa584b2405b4c3588e1da50c6c02cbc","parentId":"fld_cf0e8b6c31334d67bc421487d31a5540","modified":1729691870054,"created":1729691818717,"url":"{{ _.BASE_URL }}/api/FileChange/approve/ALL?numDayPrev=7","name":"FileChange AutoSave","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1726323968489,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_b28dbcb90b9f4a30ae621f46ca80abf1","parentId":"fld_cf0e8b6c31334d67bc421487d31a5540","modified":1729698051601,"created":1729698043734,"url":"{{ _.BASE_URL }}/api/FileChange/check/ALL?numDayPrev=0","name":"FileChange CheckAll","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1724640113735,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_f533a867e5e74bc7a712974eb5185fe2","parentId":"wrk_0d1a3f6f42fe486dacbeeea3026c648b","modified":1729691518740,"created":1729691518740,"name":"Base Environment","data":{},"dataPropertyOrder":{},"color":null,"isPrivate":false,"metaSortKey":1680615228640,"_type":"environment"},{"_id":"jar_52975036fdb946749a04bf8b105649dc","parentId":"wrk_0d1a3f6f42fe486dacbeeea3026c648b","modified":1729691518752,"created":1729691518752,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_034d8153209c43289ef94bb511a381e4","parentId":"wrk_0d1a3f6f42fe486dacbeeea3026c648b","modified":1729691518782,"created":1729691518757,"fileName":"MAPO-PROG","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_6acd2ea246a54f2fa42dfa7191704e4f","parentId":"env_f533a867e5e74bc7a712974eb5185fe2","modified":1729691571662,"created":1729691518742,"name":"DEV","data":{"BASE_URL":"https://localhost:5001"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":"#ff0000","isPrivate":false,"metaSortKey":1680615301619,"_type":"environment"},{"_id":"env_add3f929a9774e949eaacdfef9669698","parentId":"env_f533a867e5e74bc7a712974eb5185fe2","modified":1729691576277,"created":1729691518746,"name":"IIS01","data":{"BASE_URL":"https://iis01.egalware.com/MP/PROG"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":"#6600ff","isPrivate":false,"metaSortKey":1680615328099,"_type":"environment"},{"_id":"env_78f831742ec84968878b6bb3e2dbbee3","parentId":"env_f533a867e5e74bc7a712974eb5185fe2","modified":1729691592437,"created":1729691579006,"name":"PROD","data":{"BASE_URL":"https://iis01.egalware.com/MP/PROG"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":"#6600ff","isPrivate":false,"metaSortKey":1692979703520,"_type":"environment"}]}
|
||||
@@ -1 +1 @@
|
||||
{"_type":"export","__export_format":4,"__export_date":"2023-04-04T15:23:33.215Z","__export_source":"insomnia.desktop.app:v2023.1.0","resources":[{"_id":"req_cd57cb8728854cd5a7d026b9aba60047","parentId":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","modified":1680616613886,"created":1680616613017,"url":"https://localhost:7212/api/Recipe/GetRecipe?idxPODL=1656","name":"New Request","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1680616613017,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","parentId":null,"modified":1680615228636,"created":1680615228636,"name":"MAPO-SPEC","description":"","scope":"collection","_type":"workspace"},{"_id":"req_4d233d6fb970485ea929bdffdcfae05a","parentId":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","modified":1680621773464,"created":1680615246346,"url":"{{ _.BASE_URL }}/api/Recipe/GetRecipe?idxPODL=1656","name":"GET RECIPE (calc)","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1680615241541.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_278d5f0a6555457e88ad2e58cfdaae23","parentId":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","modified":1680621754168,"created":1680615436433,"url":"{{ BASE_URL }}/api/RecipeArchive/GetFile?idxMacc=SIMUL_02&fileName=10002.xml","name":"GET FILE (from archive)","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1679846511868.4375,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_ea1cd34b6839260f9a1edf3546f3c605bb6f3a2c","parentId":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","modified":1680615377532,"created":1680615228640,"name":"Base Environment","data":{},"dataPropertyOrder":{},"color":null,"isPrivate":false,"metaSortKey":1680615228640,"_type":"environment"},{"_id":"jar_ea1cd34b6839260f9a1edf3546f3c605bb6f3a2c","parentId":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","modified":1680615228642,"created":1680615228642,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_b61936e963e34a759001c6a22ad8da60","parentId":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","modified":1680615228637,"created":1680615228637,"fileName":"MAPO-SPEC","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_2757d8ba1b17435987847d0499e9369e","parentId":"env_ea1cd34b6839260f9a1edf3546f3c605bb6f3a2c","modified":1680616993850,"created":1680615301619,"name":"DEV","data":{"BASE_URL":"https://localhost:7212"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":"#ff0000","isPrivate":false,"metaSortKey":1680615301619,"_type":"environment"},{"_id":"env_f5b6aef3c2b444aab04c9056404d63f9","parentId":"env_ea1cd34b6839260f9a1edf3546f3c605bb6f3a2c","modified":1680616996428,"created":1680615328099,"name":"IIS01","data":{"BASE_URL":"https://iis01.egalware.com/MP/SPEC"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":"#6600ff","isPrivate":false,"metaSortKey":1680615328099,"_type":"environment"}]}
|
||||
{"_type":"export","__export_format":4,"__export_date":"2024-10-23T15:46:09.187Z","__export_source":"insomnia.desktop.app:v2023.5.8","resources":[{"_id":"req_cd57cb8728854cd5a7d026b9aba60047","parentId":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","modified":1680616613886,"created":1680616613017,"url":"https://localhost:7212/api/Recipe/GetRecipe?idxPODL=1656","name":"New Request","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1680616613017,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","parentId":null,"modified":1680615228636,"created":1680615228636,"name":"MAPO-SPEC","description":"","scope":"collection","_type":"workspace"},{"_id":"req_4d233d6fb970485ea929bdffdcfae05a","parentId":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","modified":1680621773464,"created":1680615246346,"url":"{{ _.BASE_URL }}/api/Recipe/GetRecipe?idxPODL=1656","name":"GET RECIPE (calc)","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1680615241541.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_278d5f0a6555457e88ad2e58cfdaae23","parentId":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","modified":1680621754168,"created":1680615436433,"url":"{{ BASE_URL }}/api/RecipeArchive/GetFile?idxMacc=SIMUL_02&fileName=10002.xml","name":"GET FILE (from archive)","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1679846511868.4375,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_ea1cd34b6839260f9a1edf3546f3c605bb6f3a2c","parentId":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","modified":1680615377532,"created":1680615228640,"name":"Base Environment","data":{},"dataPropertyOrder":{},"color":null,"isPrivate":false,"metaSortKey":1680615228640,"_type":"environment"},{"_id":"jar_ea1cd34b6839260f9a1edf3546f3c605bb6f3a2c","parentId":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","modified":1680615228642,"created":1680615228642,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_b61936e963e34a759001c6a22ad8da60","parentId":"wrk_86debe1a96ca41cdbfb53ed71a9d6d84","modified":1680615228637,"created":1680615228637,"fileName":"MAPO-SPEC","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_2757d8ba1b17435987847d0499e9369e","parentId":"env_ea1cd34b6839260f9a1edf3546f3c605bb6f3a2c","modified":1680616993850,"created":1680615301619,"name":"DEV","data":{"BASE_URL":"https://localhost:7212"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":"#ff0000","isPrivate":false,"metaSortKey":1680615301619,"_type":"environment"},{"_id":"env_f5b6aef3c2b444aab04c9056404d63f9","parentId":"env_ea1cd34b6839260f9a1edf3546f3c605bb6f3a2c","modified":1680616996428,"created":1680615328099,"name":"IIS01","data":{"BASE_URL":"https://iis01.egalware.com/MP/SPEC"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":"#6600ff","isPrivate":false,"metaSortKey":1680615328099,"_type":"environment"}]}
|
||||
@@ -115,8 +115,9 @@ namespace MP.FileData.Controllers
|
||||
/// <param name="forceTag">Forza il controllo dei Tags</param>
|
||||
/// <param name="currRule">Regole di ricerca applicate</param>
|
||||
/// <param name="UserName">Utente connesso x approvazione</param>
|
||||
/// <param name="DoApprove">indica se vada approvata la modifica o lasciato "in sospeso"</param>
|
||||
/// <returns></returns>
|
||||
public int CheckFileArchived(string idxMacchina, string path, int numDayPre, string searchPattern, bool forceTag, SearchRules currRule, string UserName)
|
||||
public int CheckFileArchived(string idxMacchina, string path, int numDayPre, string searchPattern, bool forceTag, SearchRules currRule, string UserName, bool DoApprove)
|
||||
{
|
||||
Log.Info($"CheckFileArchived S00 | macchina: {idxMacchina} | path: {path} | pattern: {searchPattern} | # ExcludedFileExt: {currRule.ExcludedFileExt.Count()}");
|
||||
int checkDone = 0;
|
||||
@@ -213,7 +214,7 @@ namespace MP.FileData.Controllers
|
||||
if (fileNew != null && fileNew.Count > 0)
|
||||
{
|
||||
checkDone += fileNew.Count;
|
||||
FileInsert(idxMacchina, path, fileNew, UserName, 0, currRule);
|
||||
FileInsert(idxMacchina, path, fileNew, UserName, 0, currRule, DoApprove);
|
||||
Log.Trace($"CheckFileArchived S03 | insert {fileNew.Count} files");
|
||||
}
|
||||
// aggiorno i file modificati
|
||||
@@ -282,24 +283,26 @@ namespace MP.FileData.Controllers
|
||||
.DbSetProgFile
|
||||
.Where(x => x.FileId == currItem.FileId)
|
||||
.FirstOrDefault();
|
||||
localDbCtx
|
||||
.DbSetProgFile
|
||||
.Remove(file2del);
|
||||
|
||||
// se ce ne fosse un altro precedente --> lo (ri)attiva
|
||||
var file2open = localDbCtx
|
||||
.DbSetProgFile
|
||||
.Where(x => x.Name == currItem.Name && x.IdxMacchina == currItem.IdxMacchina)
|
||||
.OrderByDescending(y => y.Rev)
|
||||
.FirstOrDefault();
|
||||
.DbSetProgFile
|
||||
.Where(x => !x.Active && x.IdxMacchina == currItem.IdxMacchina && x.Path == currItem.Path)
|
||||
.OrderByDescending(y => y.Rev)
|
||||
.FirstOrDefault();
|
||||
if (file2open != null)
|
||||
{
|
||||
file2open.Active = true;
|
||||
}
|
||||
|
||||
// elimino record!
|
||||
localDbCtx
|
||||
.DbSetProgFile
|
||||
.Remove(file2del);
|
||||
|
||||
// salvo!
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
int numDone = localDbCtx.SaveChanges();
|
||||
done = numDone != 0;
|
||||
}
|
||||
return done;
|
||||
}
|
||||
@@ -383,9 +386,9 @@ namespace MP.FileData.Controllers
|
||||
}
|
||||
|
||||
|
||||
public List<DatabaseModels.FileModel> FileGetByPath(string path, bool onlyActive)
|
||||
public List<FileModel> FileGetByPath(string path, bool onlyActive)
|
||||
{
|
||||
List<DatabaseModels.FileModel> dbResult = new List<DatabaseModels.FileModel>();
|
||||
List<FileModel> dbResult = new List<FileModel>();
|
||||
using (MoonPro_ProgContext localDbCtx = new MoonPro_ProgContext(_configuration))
|
||||
{
|
||||
dbResult = localDbCtx
|
||||
@@ -398,9 +401,9 @@ namespace MP.FileData.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
public List<DatabaseModels.FileModel> FileGetFilt(string IdxMacchina, bool OnlyActive, bool OnlyMod, bool OnlyNoTag, string FileName, string UserName, string Tag, string SearchVal, int NumStart, int NumRecords)
|
||||
public List<FileModel> FileGetFilt(string IdxMacchina, bool OnlyActive, bool OnlyMod, bool OnlyNoTag, string FileName, string UserName, string Tag, string SearchVal, int NumStart, int NumRecords)
|
||||
{
|
||||
List<DatabaseModels.FileModel> dbResult = new List<DatabaseModels.FileModel>();
|
||||
List<FileModel> dbResult = new List<FileModel>();
|
||||
using (MoonPro_ProgContext localDbCtx = new MoonPro_ProgContext(_configuration))
|
||||
{
|
||||
dbResult = localDbCtx
|
||||
@@ -432,8 +435,9 @@ namespace MP.FileData.Controllers
|
||||
/// <param name="UserName">Utente che ha approvato la modifica, "" = NON confermata/eliminabile</param>
|
||||
/// <param name="rev">rev da usare x creazione</param>
|
||||
/// <param name="currRule">Configuraizone ricerca</param>
|
||||
/// <param name="DoApprove">indica se vada approvata la modifica o lasciato "in sospeso"</param>
|
||||
/// <returns></returns>
|
||||
public bool FileInsert(string idxMacchina, string basePath, List<FileInfo> newFiles, string UserName, int rev, SearchRules currRule)
|
||||
public bool FileInsert(string idxMacchina, string basePath, List<FileInfo> newFiles, string UserName, int rev, SearchRules currRule, bool DoApprove)
|
||||
{
|
||||
// fare: lettura conf x macchina
|
||||
Log.Info($"FileInsert S01 per macchina {idxMacchina}: {newFiles.Count} files da valutare");
|
||||
@@ -448,7 +452,7 @@ namespace MP.FileData.Controllers
|
||||
List<FileModel> newRec = newFiles.Select(o => new FileModel()
|
||||
{
|
||||
Active = true,
|
||||
DiskStatus = FileState.Ok,
|
||||
DiskStatus = DoApprove ? FileState.Ok : FileState.Changed,
|
||||
IdxMacchina = idxMacchina,
|
||||
LastCheck = adesso,
|
||||
LastMod = o.LastWriteTime,
|
||||
@@ -536,6 +540,38 @@ namespace MP.FileData.Controllers
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Imposta utente approvazione + data modifica File
|
||||
/// </summary>
|
||||
/// <param name="currFile"></param>
|
||||
/// <param name="UserName"></param>
|
||||
/// <returns></returns>
|
||||
public bool FileSetUserApp(FileModel currFile, string UserName)
|
||||
{
|
||||
bool done = false;
|
||||
List<FileInfo> listUpdate = new List<FileInfo>();
|
||||
using (MoonPro_ProgContext localDbCtx = new MoonPro_ProgContext(_configuration))
|
||||
{
|
||||
FileModel currRec = localDbCtx
|
||||
.DbSetProgFile
|
||||
.Where(x => x.FileId == currFile.FileId)
|
||||
.FirstOrDefault();
|
||||
if (currRec != null)
|
||||
{
|
||||
DateTime adesso = DateTime.Now;
|
||||
currRec.UserAppr = UserName;
|
||||
currRec.LastMod = adesso;
|
||||
currRec.LastCheck = adesso;
|
||||
//currFile.DiskStatus = FileState.Ok;
|
||||
localDbCtx.Entry(currRec).State = EntityState.Modified;
|
||||
// salvo DB
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
}
|
||||
return done;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Approvazione modifica File
|
||||
/// </summary>
|
||||
@@ -545,8 +581,6 @@ namespace MP.FileData.Controllers
|
||||
public bool FileModApprove(FileModel currFile, string UserName)
|
||||
{
|
||||
bool done = false;
|
||||
// recupero file regole json da macchina..
|
||||
|
||||
List<FileInfo> listUpdate = new List<FileInfo>();
|
||||
using (MoonPro_ProgContext localDbCtx = new MoonPro_ProgContext(_configuration))
|
||||
{
|
||||
@@ -575,7 +609,7 @@ namespace MP.FileData.Controllers
|
||||
if (currRule.Name != "ND")
|
||||
{
|
||||
// inserisco come REVISIONE
|
||||
FileInsert(currFile.IdxMacchina, currMacchina.BasePath, listUpdate, UserName, currFile.Rev + 1, currRule);
|
||||
FileInsert(currFile.IdxMacchina, currMacchina.BasePath, listUpdate, UserName, currFile.Rev + 1, currRule, true);
|
||||
|
||||
// archivio vecchio file
|
||||
currFile.Active = false;
|
||||
|
||||
@@ -162,7 +162,7 @@ namespace MP.Prog.Components
|
||||
sw.Restart();
|
||||
// recupero elenco macchine
|
||||
percLoading += 100 / numMacchine;
|
||||
numChecks = await FDService.UpdateMachineArchive(idxMacchina, numDays, true, false, MServ.UserName);
|
||||
numChecks = await FDService.UpdateMachineArchive(idxMacchina, numDays, true, false, MServ.UserName, false);
|
||||
await Task.Delay(1);
|
||||
setupMessages.Add($"{idxMacchina}: {numChecks} files");
|
||||
await InvokeAsync(StateHasChanged);
|
||||
|
||||
@@ -181,7 +181,7 @@ namespace MP.Prog.Components
|
||||
|
||||
if (_currItem != null)
|
||||
{
|
||||
await FDService.FileApprove(_currItem, MServ.UserName);
|
||||
await FDService.FileModApprove(_currItem, MServ.UserName);
|
||||
await DataUpdated.InvokeAsync(1);
|
||||
}
|
||||
else
|
||||
@@ -225,7 +225,7 @@ namespace MP.Prog.Components
|
||||
await DataReset.InvokeAsync(0);
|
||||
await FDService.FileExport(_currItem);
|
||||
await DataReset.InvokeAsync(0);
|
||||
await FDService.UpdateMachineArchive(_currItem.IdxMacchina, 1, false, false, MServ.UserName);
|
||||
await FDService.UpdateMachineArchive(_currItem.IdxMacchina, 1, false, false, MServ.UserName, true);
|
||||
await DataUpdated.InvokeAsync(1);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using MP.FileData.Controllers;
|
||||
using MP.Prog.Data;
|
||||
@@ -10,6 +11,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace MP.Prog.Controllers
|
||||
{
|
||||
[AllowAnonymous]
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class FileChangeController : ControllerBase
|
||||
@@ -31,25 +33,13 @@ namespace MP.Prog.Controllers
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Verifica Health servizi FileChange
|
||||
/// GET api/FileChange
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult<string> Get()
|
||||
{
|
||||
return "OK";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue controllo + approvazione modifiche x directory
|
||||
/// GET api/FileChange/anagkeyval/[id]?[CodApp]
|
||||
/// Esegue controllo + approvazione modifiche x directory GET api/FileChange/approve/[id]?[numDayPrev]
|
||||
/// </summary>
|
||||
/// <param name="id">Directory / IdxMacchina | 0/ALL = tutte</param>
|
||||
/// <param name="numDayPrev">Verifica file modificati da numDayPrev gg</param>
|
||||
/// <returns>Elenco dei file approvati</returns>
|
||||
[HttpGet("approve/{id}")]
|
||||
public async Task<List<string>> approve(string id, int numDayPrev)
|
||||
public async Task<List<string>> Approve(string id, int numDayPrev)
|
||||
{
|
||||
List<string> result = new List<string>();
|
||||
// verifico se una o tutte le macchine
|
||||
@@ -69,13 +59,78 @@ namespace MP.Prog.Controllers
|
||||
foreach (var currDir in listDir)
|
||||
{
|
||||
// eseguo singolo controllo, utente = "" (è auto-approvazione)
|
||||
await FADService.UpdateMachineArchive(currDir, numDayPrev, false, false, "");
|
||||
await FADService.UpdateMachineArchive(currDir, numDayPrev, false, false, "", true);
|
||||
List<string> listAppr = await ForceApproveMod(currDir, numDayPrev);
|
||||
result.AddRange(listAppr);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue controllo + approvazione modifiche x directory GET api/FileChange/Approve/[id]?[numDayPrev]
|
||||
/// </summary>
|
||||
/// <param name="id">Directory / IdxMacchina | 0/ALL = tutte</param>
|
||||
/// <param name="numDayPrev">Verifica file modificati da numDayPrev gg</param>
|
||||
/// <returns>Elenco dei file approvati</returns>
|
||||
[HttpGet("check/{id}")]
|
||||
public async Task<List<string>> Check(string id, int numDayPrev)
|
||||
{
|
||||
List<string> result = new List<string>();
|
||||
// verifico se una o tutte le macchine
|
||||
List<string> listDir = new List<string>();
|
||||
if (id == "ALL" || id == "0")
|
||||
{
|
||||
var machList = await FADService.ArchMaccGetAll();
|
||||
listDir = machList
|
||||
.Where(x => !string.IsNullOrEmpty(x.BasePath))
|
||||
.Select(x => x.IdxMacchina).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
listDir.Add(id);
|
||||
}
|
||||
// ciclo su tutte le macchine e faccio verifica modificati...
|
||||
foreach (var currDir in listDir)
|
||||
{
|
||||
// eseguo singolo controllo, utente = "" , SENZA auto-approvazione
|
||||
int numCheks = await FADService.UpdateMachineArchive(currDir, numDayPrev, false, false, "", false);
|
||||
result.Add($"{currDir} | {numCheks} files");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Verifica Health servizi FileChange GET api/FileChange
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult<string> Get()
|
||||
{
|
||||
return "OK";
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
/// <summary>
|
||||
/// Dataservice x accesso DB
|
||||
/// </summary>
|
||||
protected FileArchDataService FADService { get; set; }
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Private Fields
|
||||
|
||||
/// <summary>
|
||||
/// Classe per logging
|
||||
/// </summary>
|
||||
private static Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// Effettua approvazione file modificati, restituendo elenco
|
||||
/// </summary>
|
||||
@@ -97,8 +152,8 @@ namespace MP.Prog.Controllers
|
||||
// ciclo ogni file modificato
|
||||
foreach (var cFile in listChanged)
|
||||
{
|
||||
// approvo il file modificato con utente anonimo (auto-approve)
|
||||
bool fatto = await FADService.FileApprove(cFile, "");
|
||||
// approvo il file modificato con utente anonimo (auto-Approve)
|
||||
bool fatto = await FADService.FileModApprove(cFile, "");
|
||||
if (fatto)
|
||||
{
|
||||
answ.Add(cFile.Path);
|
||||
@@ -107,24 +162,6 @@ namespace MP.Prog.Controllers
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
/// <summary>
|
||||
/// Dataservice x accesso DB
|
||||
/// </summary>
|
||||
protected FileArchDataService FADService { get; set; }
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Private Fields
|
||||
|
||||
/// <summary>
|
||||
/// Classe per logging
|
||||
/// </summary>
|
||||
private static Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
#endregion Private Fields
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using MP.FileData.Controllers;
|
||||
using MP.Prog.Data;
|
||||
@@ -7,6 +8,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace MP.Prog.Controllers
|
||||
{
|
||||
[AllowAnonymous]
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class HealthController : ControllerBase
|
||||
|
||||
@@ -271,17 +271,18 @@ namespace MP.Prog.Data
|
||||
/// <param name="numDayPre">Numero giorni x ricerca all'indietro da data corrente / 0 = nessun limite</param>
|
||||
/// <param name="forceTag">Indica se forzare il tag</param>
|
||||
/// <param name="UserName">Utente attivo</param>
|
||||
/// <param name="DoApprove">indica se vada approvata la modifica o lasciato "in sospeso"</param>
|
||||
/// <returns></returns>
|
||||
public async Task<int> UpdateAllArchive(int numDayPre, bool forceTag, string UserName)
|
||||
public async Task<int> UpdateAllArchive(int numDayPre, bool forceTag, string UserName, bool DoApprove)
|
||||
{
|
||||
int checkDone = 0;
|
||||
var listaMacchine = await ArchMaccGetAll();
|
||||
foreach (var item in listaMacchine.Where(x => !string.IsNullOrEmpty(x.BasePath)).ToList())
|
||||
{
|
||||
checkDone += await UpdateMachineArchive(item.IdxMacchina, numDayPre, forceTag, false, UserName);
|
||||
checkDone += await UpdateMachineArchive(item.IdxMacchina, numDayPre, forceTag, false, UserName, DoApprove);
|
||||
}
|
||||
|
||||
return await Task.FromResult(checkDone);
|
||||
return checkDone;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -294,8 +295,9 @@ namespace MP.Prog.Data
|
||||
/// <param name="forceTag">Forza la riverifica dei tags (x update da setup)</param>
|
||||
/// <param name="fullLog">Scrittura log verboso macchina</param>
|
||||
/// <param name="UserName">Utente attivo</param>
|
||||
/// <param name="DoApprove">indica se vada approvata la modifica o lasciato "in sospeso"</param>
|
||||
/// <returns></returns>
|
||||
public async Task<int> UpdateMachineArchive(string idxMacchina, int numDayPre, bool forceTag, bool fullLog, string UserName)
|
||||
public async Task<int> UpdateMachineArchive(string idxMacchina, int numDayPre, bool forceTag, bool fullLog, string UserName, bool DoApprove)
|
||||
{
|
||||
int checkDone = 0;
|
||||
Stopwatch stopWatch = new Stopwatch();
|
||||
@@ -355,7 +357,7 @@ namespace MP.Prog.Data
|
||||
Log.Trace($"Conf rule generato:{Environment.NewLine}{rawRule}");
|
||||
}
|
||||
}
|
||||
checkDone = dbController.CheckFileArchived(macchina.IdxMacchina, macchina.BasePath, numDayPre, "*.*", forceTag, currRule, UserName);
|
||||
checkDone = dbController.CheckFileArchived(macchina.IdxMacchina, macchina.BasePath, numDayPre, "*.*", forceTag, currRule, UserName, DoApprove);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -383,7 +385,7 @@ namespace MP.Prog.Data
|
||||
/// <param name="currItem"></param>
|
||||
/// <param name="UserName"></param>
|
||||
/// <returns></returns>
|
||||
internal async Task<bool> FileApprove(FileModel currItem, string UserName)
|
||||
internal async Task<bool> FileModApprove(FileModel currItem, string UserName)
|
||||
{
|
||||
bool answ = dbController.FileModApprove(currItem, UserName);
|
||||
// svuoto cache!
|
||||
@@ -391,6 +393,20 @@ namespace MP.Prog.Data
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Forza registrazione della sola approvazione utente + data
|
||||
/// </summary>
|
||||
/// <param name="currItem"></param>
|
||||
/// <param name="UserName"></param>
|
||||
/// <returns></returns>
|
||||
internal async Task<bool> FileSetUserApp(FileModel currItem, string UserName)
|
||||
{
|
||||
bool answ = dbController.FileSetUserApp(currItem, UserName);
|
||||
// svuoto cache!
|
||||
await ResetArchiveCache();
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Eliminazione file (x rifiuto modifica)
|
||||
/// </summary>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<RootNamespace>MP.Prog</RootNamespace>
|
||||
<Version>6.16.2410.2311</Version>
|
||||
<Version>6.16.2410.2317</Version>
|
||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
</div>
|
||||
<div class="input-group-append">
|
||||
<button type="button" class="btn btn-sm btn-secondary" @onclick="() => ResetTag()" title="Reset Tag">
|
||||
<i class="fas fa-sync"></i>
|
||||
<i class="fas fa-xmark"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -128,7 +128,6 @@
|
||||
<th>Macchina</th>
|
||||
<th>Tags</th>
|
||||
<th class="text-end">Modificato</th>
|
||||
@*<th>Controllo</th>*@
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -162,21 +161,30 @@
|
||||
<div class="text-end px-3">
|
||||
@CalcSize(record.Size)
|
||||
</div>
|
||||
<div class="d-flex small">
|
||||
<div class="text-end small">
|
||||
@if (!string.IsNullOrEmpty(record.UserAppr))
|
||||
{
|
||||
<button class="btn btn-sm btn-outline-dark px-1 py-0 me-1" title="Filtra Utente" @onclick="() => FilterUserName(record.UserAppr)">
|
||||
<button class="btn btn-sm btn-outline-dark px-1 py-0" title="Filtra Utente" @onclick="() => FilterUserName(record.UserAppr)">
|
||||
<i class="fas fa-user-alt"></i>
|
||||
<span class="small">@record.UserAppr</span>
|
||||
</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
<button class="btn btn-sm btn-primary border border-info border-2 rounded px-2 py-0" title="Forza approvazione Release" @onclick="() => FileSetUserApp(record)">
|
||||
<i class="fas fa-user-alt"></i>
|
||||
Approva
|
||||
<i class="fas fa-floppy-disk"></i>
|
||||
</button>
|
||||
}
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div>@record.Macchina.Nome</div>
|
||||
<div class="small">@record.Macchina.Descrizione</div>
|
||||
</td>
|
||||
<td style="max-width: 16rem;">
|
||||
<td class="small" style="max-width: 30rem;">
|
||||
@foreach (var item in record.Tags)
|
||||
{
|
||||
<button class="btn btn-sm btn-outline-info px-1 py-0 me-1" @onclick="() => FilterTag(item.TagId)" title="Filtra Tag">
|
||||
@@ -187,6 +195,13 @@
|
||||
<td class="text-end">
|
||||
<div>@record.LastMod.ToString("yyyy.MM.dd")</div>
|
||||
<div class="small">@record.LastMod.ToString("ddd HH:mm.ss")</div>
|
||||
|
||||
</td>
|
||||
<td class="text-end">
|
||||
@if (string.IsNullOrEmpty(record.UserAppr))
|
||||
{
|
||||
<button class="btn btn-sm btn-danger " @onclick="() => DeleteRec(record)" title="Elimina Record"><i class="fa-solid fa-trash"></i></button>
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
@@ -197,6 +212,6 @@
|
||||
}
|
||||
</div>
|
||||
<div class="card-footer py-0 px-1">
|
||||
<EgwCoreLib.Razor.DataPager PageSize="numRecord" currPage="currPage" numRecordChanged="PagerReloadNum" numPageChanged="PagerReloadPage" totalCount="totalCount" showLoading="isLoading"></EgwCoreLib.Razor.DataPager>
|
||||
<EgwCoreLib.Razor.DataPager PageSize="numRecord" currPage="currPage" numRecordChanged="SetRecPage" numPageChanged="SetNumPage" totalCount="totalCount" showLoading="isLoading"></EgwCoreLib.Razor.DataPager>
|
||||
</div>
|
||||
</div>
|
||||
+132
-70
@@ -106,15 +106,6 @@ namespace MP.Prog.Pages
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected async Task ReloadAsync()
|
||||
{
|
||||
isLoading = true;
|
||||
currRecord = null;
|
||||
ListRecords = null;
|
||||
await ReloadData();
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce size calcolata
|
||||
/// </summary>
|
||||
@@ -137,6 +128,41 @@ namespace MP.Prog.Pages
|
||||
currRecord = await FDService.FileGetByKey(selRecord.FileId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// forza approvazione utente corrente
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected async Task FileSetUserApp(FileModel CurrRec)
|
||||
{
|
||||
if (!await JSRuntime.InvokeAsync<bool>("confirm", "Sicuro di voler approvare il salvataggio automatico della nuova revisione?"))
|
||||
return;
|
||||
|
||||
await FDService.FileSetUserApp(CurrRec, MServ.UserName);
|
||||
isLoading = true;
|
||||
await ReloadData();
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elimina record (non approvato) corrente e riattiva precedente
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected async Task DeleteRec(FileModel CurrRec)
|
||||
{
|
||||
if (!await JSRuntime.InvokeAsync<bool>("confirm", "Sicuro di voler eliminare il record e riattivare la revisione antecedente? Il file potrebbe risultare modificato"))
|
||||
return;
|
||||
|
||||
// elimino
|
||||
await FDService.FileDelete(CurrRec);
|
||||
//// verifico eventuali modifiche
|
||||
//var numCheck = await FDService.UpdateMachineArchive(CurrRec.IdxMacchina, 30, false, false, "");
|
||||
|
||||
isLoading = true;
|
||||
await ReloadData();
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
|
||||
protected async Task FilterPath(string searchVal)
|
||||
{
|
||||
SelFileName = searchVal;
|
||||
@@ -146,6 +172,14 @@ namespace MP.Prog.Pages
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
protected async Task FilterTag(string searchVal)
|
||||
{
|
||||
SelTag = searchVal;
|
||||
currPage = 1;
|
||||
await ReloadData();
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
protected async Task FilterUserName(string userName)
|
||||
{
|
||||
SelUserName = userName;
|
||||
@@ -155,27 +189,48 @@ namespace MP.Prog.Pages
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
protected async Task FilterTag(string searchVal)
|
||||
{
|
||||
SelTag = searchVal;
|
||||
currPage = 1;
|
||||
await ReloadData();
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue comparazione tra dati DB e filesystem (modificati entro numDays)
|
||||
/// </summary>
|
||||
/// <param name="numDays"></param>
|
||||
/// <returns></returns>
|
||||
protected async Task ForceCheck(int numDays)
|
||||
{
|
||||
currRecord = null;
|
||||
ListRecords = null;
|
||||
// importante altrimenti NON mostra update UI
|
||||
await Task.Delay(1);
|
||||
//MServ.File_Filter = SelectData.Init(5, 10);
|
||||
var numCheck = await FDService.UpdateAllArchive(numDays, false, MServ.UserName);
|
||||
var numCheck = await FDService.UpdateAllArchive(numDays, false, MServ.UserName, false);
|
||||
await ReloadAllData();
|
||||
await Task.Delay(1);
|
||||
await RefreshDisplayLoading();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// effettua approvazione di ttute le modifiche visualizzate
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected async Task MassAppr()
|
||||
{
|
||||
if (!await JSRuntime.InvokeAsync<bool>("confirm", "Sicuro di voler procedere approvando una nuova revisione di ogni file modificato visualizzato?"))
|
||||
return;
|
||||
|
||||
//verifico che sia cliccato solo modificati...
|
||||
if(OnlyMod)
|
||||
{
|
||||
foreach (var item in ListRecords)
|
||||
{
|
||||
await FDService.FileModApprove(item, MServ.UserName);
|
||||
}
|
||||
}
|
||||
// rileggo!
|
||||
ResetData();
|
||||
await ResetFilter();
|
||||
await Task.Delay(1);
|
||||
await ReloadData();
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
SearchTag = defTag;
|
||||
@@ -188,20 +243,6 @@ namespace MP.Prog.Pages
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
protected async Task PagerReloadNum(int newNum)
|
||||
{
|
||||
numRecord = newNum;
|
||||
await ReloadData();
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
protected async Task PagerReloadPage(int newNum)
|
||||
{
|
||||
currPage = newNum;
|
||||
await ReloadData();
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
protected async Task RefreshDisplayLoading()
|
||||
{
|
||||
await Task.Delay(1);
|
||||
@@ -218,6 +259,15 @@ namespace MP.Prog.Pages
|
||||
await ReloadData();
|
||||
}
|
||||
|
||||
protected async Task ReloadAsync()
|
||||
{
|
||||
isLoading = true;
|
||||
currRecord = null;
|
||||
ListRecords = null;
|
||||
await ReloadData();
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
protected async Task ReloadData()
|
||||
{
|
||||
isLoading = true;
|
||||
@@ -230,19 +280,6 @@ namespace MP.Prog.Pages
|
||||
await Task.Delay(1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// effettua approvazione di ttute le modifiche visualizzate
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected async Task MassAppr()
|
||||
{
|
||||
ResetData();
|
||||
await ResetFilter();
|
||||
await Task.Delay(1);
|
||||
await ReloadData();
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
protected void ResetData()
|
||||
{
|
||||
FDService.rollBackEdit(currRecord);
|
||||
@@ -278,6 +315,30 @@ namespace MP.Prog.Pages
|
||||
currRecord = selRecord;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Imposta pagina corrente
|
||||
/// </summary>
|
||||
/// <param name="newNum"></param>
|
||||
/// <returns></returns>
|
||||
protected async Task SetNumPage(int newNum)
|
||||
{
|
||||
currPage = newNum;
|
||||
await ReloadData();
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Imposta num record x pagina
|
||||
/// </summary>
|
||||
/// <param name="newNum"></param>
|
||||
/// <returns></returns>
|
||||
protected async Task SetRecPage(int newNum)
|
||||
{
|
||||
numRecord = newNum;
|
||||
await ReloadData();
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
protected string TextReduce(string textOriginal, int maxChar)
|
||||
{
|
||||
string answ = textOriginal;
|
||||
@@ -462,30 +523,6 @@ namespace MP.Prog.Pages
|
||||
}
|
||||
}
|
||||
}
|
||||
private string SelUserName
|
||||
{
|
||||
get
|
||||
{
|
||||
string answ = "";
|
||||
if (MServ.File_Filter != null)
|
||||
{
|
||||
answ = MServ.File_Filter.UserName;
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (!MServ.File_Filter.UserName.Equals(value))
|
||||
{
|
||||
MServ.File_Filter.UserName = value;
|
||||
var pUpd = Task.Run(async () =>
|
||||
{
|
||||
await ReloadAsync();
|
||||
});
|
||||
pUpd.Wait();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private string SelIdxMacc
|
||||
{
|
||||
@@ -537,6 +574,31 @@ namespace MP.Prog.Pages
|
||||
}
|
||||
}
|
||||
|
||||
private string SelUserName
|
||||
{
|
||||
get
|
||||
{
|
||||
string answ = "";
|
||||
if (MServ.File_Filter != null)
|
||||
{
|
||||
answ = MServ.File_Filter.UserName;
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (!MServ.File_Filter.UserName.Equals(value))
|
||||
{
|
||||
MServ.File_Filter.UserName = value;
|
||||
var pUpd = Task.Run(async () =>
|
||||
{
|
||||
await ReloadAsync();
|
||||
});
|
||||
pUpd.Wait();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Private Properties
|
||||
|
||||
#region Private Methods
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo gestione Programmi MAPO</i>
|
||||
<h4>Versione: 6.16.2410.2311</h4>
|
||||
<h4>Versione: 6.16.2410.2317</h4>
|
||||
<br />
|
||||
Note di rilascio:
|
||||
<ul>
|
||||
|
||||
@@ -1 +1 @@
|
||||
6.16.2410.2311
|
||||
6.16.2410.2317
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>6.16.2410.2311</version>
|
||||
<version>6.16.2410.2317</version>
|
||||
<url>https://nexus.steamware.net/repository/SWS/MP-PROG/stable/LAST/MP.Prog.zip</url>
|
||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-PROG/stable/LAST/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
Reference in New Issue
Block a user