- ok cancella
- ok metodi API x check + approva salvando senza user
- ok procedure insomnia salvate
This commit is contained in:
Samuele Locatelli
2024-10-23 17:56:58 +02:00
parent 645bc8d695
commit 4ee2ef1eb9
15 changed files with 316 additions and 148 deletions
+54 -20
View File
@@ -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;