|
1 | | -using System.Net.Http.Headers; |
2 | | -using DocumentFormat.OpenXml.Bibliography; |
3 | | -using MediatR; |
| 1 | +using MediatR; |
4 | 2 | using Microsoft.AspNetCore.Authorization; |
5 | 3 | using Microsoft.AspNetCore.Cors; |
6 | 4 | using Microsoft.AspNetCore.Http.HttpResults; |
@@ -749,27 +747,24 @@ private async Task<IResult> GetRelRigheDocumentAsync( |
749 | 747 | [FromRoute] string? id, |
750 | 748 | [FromServices] IStringLocalizer<Localization> localizer, |
751 | 749 | [FromServices] IMediator handler, |
| 750 | + [FromServices] IRelRigheStorageService storageService, |
752 | 751 | [FromQuery] bool? binary = null) |
753 | 752 | { |
754 | | - var authInfo = context.GetAuthInfo(); |
755 | | - var request = new RelRigheByIdRequest() |
756 | | - { |
757 | | - IdTestata = id |
758 | | - }; |
759 | | - |
760 | | - var rels = await handler.Send(request.Map(authInfo)); |
761 | | - if (rels == null || !rels.Any()) |
| 753 | + var authInfo = context.GetAuthInfo(); |
| 754 | + var idEnte = id!.Split("_")[0]; |
| 755 | + if (idEnte != authInfo.IdEnte) |
762 | 756 | return NotFound(); |
763 | 757 |
|
764 | | - var stream = await rels!.ToStream<RigheRelDto, RigheRelDtoEnteMap>(); |
765 | | - if (stream.Length == 0) |
| 758 | + var ente = await handler.Send(new EnteQueryGetById(authInfo) { }); |
| 759 | + if (ente == null) |
766 | 760 | return NotFound(); |
767 | 761 |
|
768 | | - var filename = $"{Guid.NewGuid()}.csv"; |
769 | | - var mimeCsv = "text/csv"; |
| 762 | + var url = storageService.GetSASToken(id, ente.Descrizione!); |
| 763 | + url = url!.FileExistsAsync(); |
| 764 | + if (string.IsNullOrEmpty(url)) |
| 765 | + return NotFound(); |
770 | 766 |
|
771 | | - stream.Position = 0; |
772 | | - return Results.Stream(stream, mimeCsv, filename); |
| 767 | + return Ok(url); |
773 | 768 | } |
774 | 769 |
|
775 | 770 | [Authorize(Roles = $"{Ruolo.OPERATOR}, {Ruolo.ADMIN}", Policy = Module.SelfCarePolicy)] |
|
0 commit comments