//using IRaCIS.Core.Application.Helper;
//using MassTransit;
//using Microsoft.AspNetCore.Authorization;
//using Microsoft.AspNetCore.Builder;
//using Microsoft.AspNetCore.Hosting;
//using Microsoft.AspNetCore.Http;
//using Microsoft.AspNetCore.Mvc;
//using Microsoft.AspNetCore.StaticFiles;
//using RestSharp;
//using SharpCompress.Common;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;

//namespace IRaCIS.Core.Application.Service.MinimalApiService
//{
//    /// <summary>
//    /// 上传文件转PDF 或者给url 这边下载然后转PDF
//    /// 
//    /// </summary>
//    /// <param name="_hostEnvironment"></param>
//    [ApiExplorerSettings(GroupName = "Institution")]
//    public class FileToPDFService(IWebHostEnvironment _hostEnvironment) : ServiceBase
//    {

//        [AllowAnonymous]
//        [RoutePattern(HttpMethod = "Post")]
//        public async Task<IResult> UploadFileAsync([FromForm] IFormFile file)
//        {
//            var tempFileName = NewId.NextGuid() + file.FileName;
//            var tempPDFName = Path.GetFileNameWithoutExtension(tempFileName) + ".pdf";


//            // 获取wwwroot目录
//            var wwwRootPath = Path.Combine(FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment), "temp");

//            // 检查wwwroot/temp目录是否存在，不存在则创建
//            if (!Directory.Exists(wwwRootPath))
//            {
//                Directory.CreateDirectory(wwwRootPath);
//            }

//            // 文件保存路径
//            var pdfFilePath = Path.Combine(wwwRootPath, tempPDFName);
//            var tempFilePath = Path.Combine(wwwRootPath, tempFileName);


//            using var stream = File.OpenWrite(tempFilePath);
//            await file.CopyToAsync(stream);

//            FileConvertHelper.ConvertWordToPdf(tempFilePath, Path.GetDirectoryName(pdfFilePath));

//            var fileBytes = await File.ReadAllBytesAsync(pdfFilePath);

//            // 清理临时上传的文件和pdf
//            if (File.Exists(pdfFilePath))
//            {
//                File.Delete(pdfFilePath);
//            }
//            if (File.Exists(tempFilePath))
//            {
//                File.Delete(tempFilePath);
//            }

//            new FileExtensionContentTypeProvider().Mappings.TryGetValue(Path.GetExtension(tempPDFName), out var contentType);

//            return Results.File(fileBytes, contentType);

//        }


//        public async Task<IResult> GetPDFFileAsync(string fileUrl)
//        {
//            var tempFileName = NewId.NextGuid() + Path.GetFileName(fileUrl);
//            var tempPDFName = Path.GetFileNameWithoutExtension(tempFileName) + ".pdf";


//            // 获取wwwroot目录
//            var wwwRootPath = Path.Combine(FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment), "temp");

//            // 检查wwwroot/temp目录是否存在，不存在则创建
//            if (!Directory.Exists(wwwRootPath))
//            {
//                Directory.CreateDirectory(wwwRootPath);
//            }

//            // 文件保存路径
//            var pdfFilePath = Path.Combine(wwwRootPath, tempPDFName);
//            var tempFilePath = Path.Combine(wwwRootPath, tempFileName);


//            //请求url获取文件
//            var client = new RestClient(fileUrl);

//            var request = new RestRequest(fileUrl, Method.Get);

//            var response = await client.ExecuteAsync(request);

//            // 检查响应是否成功
//            if (response.IsSuccessful)
//            {
//                // 将响应内容写入到本地文件
//                await File.WriteAllBytesAsync(tempFilePath, response.RawBytes);

//                FileConvertHelper.ConvertWordToPdf(tempFilePath, Path.GetDirectoryName(pdfFilePath));

//                var fileBytes = await File.ReadAllBytesAsync(pdfFilePath);

//                // 清理临时上传的文件和pdf
//                if (File.Exists(pdfFilePath))
//                {
//                    File.Delete(pdfFilePath);
//                }
//                if (File.Exists(tempFilePath))
//                {
//                    File.Delete(tempFilePath);
//                }

//                new FileExtensionContentTypeProvider().Mappings.TryGetValue(Path.GetExtension(tempPDFName), out var contentType);

//                return Results.File(fileBytes, contentType);
//            }
//            else
//            {
//                Console.WriteLine($"下载文件失败: {response.ErrorMessage}");

//                return Results.Problem("下载文件失败", statusCode: StatusCodes.Status500InternalServerError);

//            }


//        }

//    }
//}
