Permette di eliminare le foto di una scheda anche dopo il salvataggio

Finora la foto si poteva togliere solo prima di salvare la scheda.

- La X compare su tutte le foto (non in sola lettura, non mentre la foto e'
  ancora in elaborazione). L'eliminazione avviene al salvataggio: uscendo
  senza salvare le foto restano.
- Una foto gia' inviata si toglie prima dal server (nuovo endpoint
  steup/removeAttachment), poi dal dispositivo e da Scheda.ImageNames. Senza
  rete la X avvisa e non la toglie; se il server non conferma al salvataggio
  la foto resta ovunque e compare un avviso.
- Una foto salvata ma non ancora inviata si elimina dal dispositivo (con la
  rete si prova anche a toglierla dal server, senza bloccare).
- Togliere una foto salvata non la cancellava mai: il flag ToRemove finiva
  su un elemento appena rimosso dall'elenco. Ora le foto tolte stanno in una
  lista a parte fino al salvataggio; ToRemove e' stato eliminato.
- FileManager.GetInspectionFiles: le foto in /toUpload si filtravano per
  nome, ma ImageNames contiene il percorso completo, quindi quelle salvate
  senza rete non ricomparivano mai riaprendo la scheda. Ora si accetta sia il
  percorso sia il nome, e il DTO porta anche i byte del file per l'invio.

Richiede i Servizi con steup/removeAttachment.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MarcoEandClaude Opus 5.5 committed 2026-11-04 13:39:31 +01:00
1 parent b2db0f2479
commit c4c624667d
5 files changed
+130 -30

No files matched your search

-1
View File
@@ -15,7 +15,6 @@ public class AttachedDto
public string? ThumbPath { get; set; }
public bool SavedOnAppData { get; set; }
public bool ToRemove { get; set; }
public bool ToUpload { get; set; }
public Stream? FileContent =>
@@ -17,6 +17,7 @@ public interface IIntegrySteupService
Task<SaveSchedaResponseDto?> SaveMultipleSchede(List<SaveRequestDto> request);
Task CompleteInspection(string activityId);
Task UploadFile(string activityId, byte[] file, string fileName);
Task RemoveFile(string activityId, string fileName);
Task DeleteScheda(string activityId);
}
@@ -70,6 +70,20 @@ public class IntegrySteupService(IIntegryApiRestClient integryApiRestClient) : I
content.Dispose();
}
/// <summary>
/// Toglie un allegato dalla scheda. Il server lo riconosce dal nome con cui
/// è stato caricato da <see cref="UploadFile"/>.
/// </summary>
public Task RemoveFile(string activityId, string fileName) =>
integryApiRestClient.AuthorizedGet<object>(
$"{BaseRequest}/removeAttachment",
new Dictionary<string, object?>
{
{ "activityId", activityId },
{ "fileName", fileName }
}
);
public Task DeleteScheda(string activityId) =>
integryApiRestClient.AuthorizedGet<object>(
$"{BaseRequest}/deleteScheda",