using Microsoft.AspNetCore.Mvc;
using WcsMain.ApiServe.Controllers.Dto.WcsDto.SystemController;
using WcsMain.ApiServe.Controllers.Dto;
using WcsMain.WcsAttribute.AutoFacAttribute;
using WcsMain.ApiServe.Factory;
using DataCheck;
namespace WcsMain.ApiServe.Service.WcsService;
[Service]
public class RunningInfoService
{
///
/// 获取日志名称
///
///
///
public WcsApiResponse> GetLogFileName(string? logType)
{
string logAddress = AppDomain.CurrentDomain.BaseDirectory + $"Log\\{logType}\\";
DirectoryInfo directoryInfo = new(logAddress);
bool isExist = directoryInfo.Exists;
if (!isExist)
{
return WcsApiResponseFactory.Fail>(msg: "没有相关的日志");
}
var fileInfos = directoryInfo.GetFiles();
List fileNames = [];
foreach (FileInfo fileInfo in fileInfos)
{
fileNames.Add(fileInfo.Name);
}
return WcsApiResponseFactory.Success(fileNames, "查询成功");
}
///
/// 验证下载文件是否存在
///
///
///
public WcsApiResponse CheckDownLoadLog([FromBody] LogRequest request)
{
bool checkData = CheckData.CheckDataRules(request);
if (!checkData)
{
return WcsApiResponseFactory.RequestErr();
}
string logAddress = AppDomain.CurrentDomain.BaseDirectory + $"Log\\{request.LogType}\\{request.LogFileName}";
bool isHave = System.IO.File.Exists(logAddress);
return isHave ? WcsApiResponseFactory.Success() : WcsApiResponseFactory.Fail("文件不存在");
}
///
/// 下载文件
///
///
///
public FileContentResult DownLoadLog(LogRequest request, ControllerBase controllerBase)
{
string logAddress = AppDomain.CurrentDomain.BaseDirectory + $"Log\\{request.LogType}\\{request.LogFileName}";
byte[] fileBytes = System.IO.File.ReadAllBytes(logAddress);
return controllerBase.File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, "log.txt");
}
}