diff --git a/salesbook.Shared/Components/SingleElements/Modal/ActivityForm.razor b/salesbook.Shared/Components/SingleElements/Modal/ActivityForm.razor index 1b33a17..364ef47 100644 --- a/salesbook.Shared/Components/SingleElements/Modal/ActivityForm.razor +++ b/salesbook.Shared/Components/SingleElements/Modal/ActivityForm.razor @@ -183,7 +183,7 @@ { foreach (var file in ActivityFileList) { - + @file.FileName } @@ -700,6 +700,33 @@ } } + private async Task DeleteAttach(ActivityFileDto file) + { + Snackbar.Clear(); + + if (ActivityFileList == null) return; + + try + { + ActivityFileList.Remove(file); + StateHasChanged(); + + await IntegryApiService.DeleteFile(ActivityModel.ActivityId!, file.FileName); + } + catch (Exception ex) + { + ActivityFileList.Add(file); + StateHasChanged(); + + Snackbar.Add("Impossibile eliminare il file", Severity.Error); + Console.WriteLine($"Impossibile eliminare il file: {ex.Message}"); + } + finally + { + Snackbar.Add($"{file.FileName} eliminato con successo", Severity.Info); + } + } + private async Task OpenAttached(AttachedDTO attached) { if (attached is { FileContent: not null, MimeType: not null }) diff --git a/salesbook.Shared/Core/Interface/IntegryApi/IIntegryApiService.cs b/salesbook.Shared/Core/Interface/IntegryApi/IIntegryApiService.cs index 4ab03a5..ea44154 100644 --- a/salesbook.Shared/Core/Interface/IntegryApi/IIntegryApiService.cs +++ b/salesbook.Shared/Core/Interface/IntegryApi/IIntegryApiService.cs @@ -25,6 +25,7 @@ public interface IIntegryApiService Task TransferProspect(CRMTransferProspectRequestDTO request); Task UploadFile(string id, byte[] file, string fileName); + Task DeleteFile(string activityId, string fileName); Task> GetActivityFile(string activityId); Task DownloadFile(string activityId, string fileName); Task DownloadFileFromRefUuid(string refUuid, string fileName); diff --git a/salesbook.Shared/Core/Services/IntegryApiService.cs b/salesbook.Shared/Core/Services/IntegryApiService.cs index 8519862..fe92db0 100644 --- a/salesbook.Shared/Core/Services/IntegryApiService.cs +++ b/salesbook.Shared/Core/Services/IntegryApiService.cs @@ -134,7 +134,18 @@ public class IntegryApiService(IIntegryApiRestClient integryApiRestClient, IUser fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data"); content.Add(fileContent, "files", fileName); - return integryApiRestClient.Post($"uploadStbActivityFileAttachment", content, queryParams); + return integryApiRestClient.Post("uploadStbActivityFileAttachment", content, queryParams); + } + + public Task DeleteFile(string activityId, string fileName) + { + var queryParams = new Dictionary + { + { "activityId", activityId }, + { "fileName", fileName } + }; + + return integryApiRestClient.Get("activity/removeAttachment", queryParams); } public Task> GetActivityFile(string activityId)