diff --git a/MP.FileData/Controllers/FileController.cs b/MP.FileData/Controllers/FileController.cs index a519a78d..8e09165d 100644 --- a/MP.FileData/Controllers/FileController.cs +++ b/MP.FileData/Controllers/FileController.cs @@ -234,6 +234,18 @@ namespace MP.FileData.Controllers return done; } + public bool FileExport(FileModel currFile) + { + bool done = false; + using (MoonPro_ProgContext localDbCtx = new MoonPro_ProgContext(_configuration)) + { + // sovrascrivo il file su disco + File.WriteAllBytes(currFile.Path, currFile.FileContent); + done = true; + } + return done; + } + public FileModel FileGetByKey(int FileId) { FileModel thisFile = null; @@ -450,10 +462,10 @@ namespace MP.FileData.Controllers // rileggo file... var newFileInfo = new FileInfo(currFile.Path); + currFile.LastMod = newFileInfo.LastWriteTime; // aggiorno stato del file a unchanged e data mod ad ora... currFile.DiskStatus = FileState.Ok; - currFile.LastMod = newFileInfo.LastWriteTime; localDbCtx.Entry(currFile).State = EntityState.Modified; // salvo DB diff --git a/MP.Prog/Components/FileEditor.razor b/MP.Prog/Components/FileEditor.razor index 067157fa..e2136bde 100644 --- a/MP.Prog/Components/FileEditor.razor +++ b/MP.Prog/Components/FileEditor.razor @@ -5,20 +5,32 @@
Dettaglio modifiche
- @if (_currItem.DiskStatus != FileData.FileState.Ok) + @if (_currItem.Active) + { + @if (_currItem.DiskStatus != FileData.FileState.Ok) + { +
+
+ +
+
+ +
+
+ } + } + else {
- +
-
}
- @numDiff
diff --git a/MP.Prog/Components/FileEditor.razor.cs b/MP.Prog/Components/FileEditor.razor.cs index dd163112..d612e1ab 100644 --- a/MP.Prog/Components/FileEditor.razor.cs +++ b/MP.Prog/Components/FileEditor.razor.cs @@ -67,7 +67,7 @@ namespace MP.Prog.Components private async Task ApproveChange() { - if (!await JSRuntime.InvokeAsync("confirm", "Sicuro di voler asccettare la modifica del file selezionato generando una nuova revisione?")) + if (!await JSRuntime.InvokeAsync("confirm", "Sicuro di voler accettare la modifica del file selezionato generando una nuova revisione?")) return; if (_currItem != null) @@ -102,6 +102,29 @@ namespace MP.Prog.Components } } + /// + /// Esporta da archivio a filesystem + /// + /// + private async Task ExportArchive() + { + if (!await JSRuntime.InvokeAsync("confirm", "Sicuro di voler sovrascrivere il programma salvato in rete con la versione (inattiva) selezionata?")) + return; + + if (_currItem != null) + { + await DataReset.InvokeAsync(0); + await DataService.FileExport(_currItem); + await DataReset.InvokeAsync(0); + await DataService.updateMachineArchive(_currItem.IdxMacchina, 1, false, false); + await DataUpdated.InvokeAsync(1); + } + else + { + Console.WriteLine("File null!"); + } + } + private async Task RejectChange() { if (!await JSRuntime.InvokeAsync("confirm", "Sicuro di voler eliminare la modifica del file selezionato e sovrascrivere la versione in rete?")) diff --git a/MP.Prog/Data/FileArchDataService.cs b/MP.Prog/Data/FileArchDataService.cs index 18858c25..fdd80807 100644 --- a/MP.Prog/Data/FileArchDataService.cs +++ b/MP.Prog/Data/FileArchDataService.cs @@ -116,6 +116,11 @@ namespace MP.Prog.Data return Task.FromResult(dbController.FileDelete(currItem)); } + internal Task FileExport(FileData.DatabaseModels.FileModel currItem) + { + return Task.FromResult(dbController.FileExport(currItem)); + } + internal Task FileReject(FileData.DatabaseModels.FileModel currItem) { return Task.FromResult(dbController.FileModReject(currItem)); diff --git a/MP.Prog/MP.Prog.csproj b/MP.Prog/MP.Prog.csproj index e7427be2..870198b9 100644 --- a/MP.Prog/MP.Prog.csproj +++ b/MP.Prog/MP.Prog.csproj @@ -3,7 +3,7 @@ net5.0 MP.Prog - 6.14.2109.2215 + 6.14.2109.2815 diff --git a/MP.Prog/Pages/Archive.razor b/MP.Prog/Pages/Archive.razor index 20bbd1f1..6d5526a7 100644 --- a/MP.Prog/Pages/Archive.razor +++ b/MP.Prog/Pages/Archive.razor @@ -68,10 +68,10 @@
-
+
@if (!string.IsNullOrEmpty(SelFileName)) { - @SelFileName + @TextReduce(SelFileName, 20) }
@@ -144,7 +144,7 @@ { - @if (currRecord == null && record.Active) + @if (currRecord == null) {