94 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
| using AutoMapper;
 | |
| 
 | |
| using IRaCIS.Core.Domain.Models;
 | |
| 
 | |
| using IRaCIS.Core.Infra.EFCore;
 | |
| 
 | |
| using MediatR;
 | |
| using Microsoft.AspNetCore.Authorization;
 | |
| using Microsoft.AspNetCore.Hosting;
 | |
| 
 | |
| using Microsoft.AspNetCore.Mvc;
 | |
| using Microsoft.AspNetCore.StaticFiles;
 | |
| using System;
 | |
| using System.IO;
 | |
| using System.Linq;
 | |
| using System.Threading.Tasks;
 | |
| using IRaCIS.Core.Domain.Share;
 | |
| using Microsoft.EntityFrameworkCore;
 | |
| 
 | |
| namespace IRaCIS.Core.API.Controllers
 | |
| {
 | |
|     [ApiExplorerSettings(GroupName = "Trial")]
 | |
|     [ApiController]
 | |
|     public class DownLoadController : ControllerBase
 | |
|     {
 | |
|         public IMapper _mapper { get; set; }
 | |
|         public IUserInfo _userInfo { get; set; }
 | |
| 
 | |
|         private readonly IWebHostEnvironment _hostEnvironment;
 | |
| 
 | |
| 
 | |
| 
 | |
|         public DownLoadController(IMapper mapper, IUserInfo userInfo, IMediator mediator, IWebHostEnvironment hostEnvironment)
 | |
|         {
 | |
|             _hostEnvironment = hostEnvironment;
 | |
|             _mapper = mapper;
 | |
|             _userInfo = userInfo;
 | |
|         }
 | |
| 
 | |
|         //[HttpGet("VisitPlan/DownloadInflunceStudyList{trialId:guid}/{createTime:dateTime}")]
 | |
|         //public async Task<IActionResult> DownloadInflunceStudyList(Guid trialId, DateTime createTime, [FromServices] IRepository<VisitPlanInfluenceSubjectVisit> _influnceRepository)
 | |
|         //{
 | |
|         //    var list = _influnceRepository.Where(t => t.TrialId == trialId && t.CreateTime == createTime)
 | |
|         //        .ProjectTo<VisitPlanInfluenceSubjectVisitDTO>(_mapper.ConfigurationProvider).ToList();
 | |
| 
 | |
|         //    if (list.Count == 0)
 | |
|         //    {
 | |
|         //        list.Add(new VisitPlanInfluenceSubjectVisitDTO() { CreateTime = DateTime.Now, SubjectCode = "test", StudyTime = DateTime.Now, IsDicomStudy = false, HistoryWindow = "test" });
 | |
|         //    }
 | |
| 
 | |
|         //    IExporter exporter = new ExcelExporter();
 | |
| 
 | |
|         //    var result = await exporter.ExportAsByteArray(list);
 | |
| 
 | |
| 
 | |
|         //    return new XlsxFileResult(bytes: bytes);
 | |
| 
 | |
|         //    //return File(result, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"检查导出_{DateTime.Now}.xlsx");
 | |
| 
 | |
|         //}
 | |
| 
 | |
| 
 | |
|         [AllowAnonymous]
 | |
|         [HttpGet("CommonDocument/DownloadCommonDoc")]
 | |
|         public async Task<IActionResult> DownloadCommonFile(string code, [FromServices] IRepository<CommonDocument> _commonDocumentRepository)
 | |
|         {
 | |
|             var doc =  await _commonDocumentRepository.AsQueryable(true).FirstOrDefaultAsync(t => t.Code == code);
 | |
| 
 | |
|             if (doc == null)
 | |
|             {
 | |
|                 throw new Exception("当前code 没要找到对应的文件");
 | |
|             }
 | |
| 
 | |
|             var rootPath = Directory.GetParent(_hostEnvironment.ContentRootPath.TrimEnd('\\')).FullName;
 | |
| 
 | |
|             var filePath = Path.Combine(rootPath, doc.Path.Trim('/'));
 | |
| 
 | |
|             if (!System.IO.File.Exists(filePath))
 | |
|             {
 | |
|                 throw new Exception("服务器本地不存在该路径文件");
 | |
|             }
 | |
| 
 | |
|             new FileExtensionContentTypeProvider().Mappings.TryGetValue(Path.GetExtension(filePath), out var contentType);
 | |
| 
 | |
| 
 | |
|             return File(System.IO.File.OpenRead(filePath), contentType ?? "application/octet-stream", doc.Name);
 | |
| 
 | |
| 
 | |
|         }
 | |
| 
 | |
| 
 | |
|     }
 | |
| }
 |