using Magicodes.ExporterAndImporter.Excel; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; using TaskManager.Controllers; using TaskManager.Entity; using TaskManager.EntityFramework; using TaskManager.EntityFramework.Repository; using Wood.Service.Controllers; namespace TaskManager.Controllers { public class LogController:NormalBaseController { public LogController(JobDbContext context, IServiceProvider builder, IConfiguration configuration, IRepository repository) : base(context, builder, configuration, repository) { } public async Task> GetAll() { var log = await _context.TaskLogs.ToListAsync(); return log; } //[HttpGet("AddError")] //public async Task AddError(string message,string taskname) //{ // _context.TaskLogs.Add(new TaskLog() { Info = message, Type = "错误",TaskName=taskname ,CreationTime=DateTime.Now}); // var result =await _context.SaveChangesAsync(); // if (result > 0) // { // return true; // } // return false; //} //[HttpGet("AddInfo")] //public async Task AddInfo(string message, string taskname) //{ // _context.TaskLogs.Add(new TaskLog() { Info = message, Type = "记录", TaskName = taskname, CreationTime = DateTime.Now }); // var result = await _context.SaveChangesAsync(); // if (result > 0) // { // return true; // } // return false; //} [HttpGet("AddError")] public async Task AddError(string message, string taskname, Guid taskid, string version) { var log = new TaskLog { Info = message, Type = "错误", TaskName = taskname, CreationTime = DateTime.Now, TaskId = taskid, Version = version?.ToString() }; _context.TaskLogs.Add(log); var result = await _context.SaveChangesAsync(); return true; // 日志已入队,视为成功 } [HttpGet("AddInfo")] public async Task AddInfo(string message, string taskname, Guid taskid, string version) { var log = new TaskLog { Info = message, Type = "信息", TaskName = taskname, CreationTime = DateTime.Now, TaskId = taskid, Version = version?.ToString() }; _context.TaskLogs.Add(log); var result = await _context.SaveChangesAsync(); return true; } [HttpGet("AddPostRequest")] public async Task AddPostRequest(string message, string taskname, Guid taskid, string version,string remark) { var log = new TaskLog { Info = message, Type = "请求", TaskName = taskname, CreationTime = DateTime.Now, TaskId = taskid, Version = version?.ToString(), Remark = remark }; _context.TaskLogs.Add(log); var result = await _context.SaveChangesAsync(); return true; } [HttpGet("AddPostResponse")] public async Task AddPostResponse(string message, string taskname, Guid taskid, string version,string remaek) { var log = new TaskLog { Info = message, Type = "应答", TaskName = taskname, CreationTime = DateTime.Now, TaskId = taskid, Version = version?.ToString(), Remark = remaek }; _context.TaskLogs.Add(log); var result = await _context.SaveChangesAsync(); return true; } [HttpGet("AddInfoRemark")] public async Task AddInfoRemark(string message, string taskname,string remark) { _context.TaskLogs.Add(new TaskLog() { Info = message, Type = "记录", TaskName = taskname, CreationTime = DateTime.Now,Remark=remark }); var result = await _context.SaveChangesAsync(); if (result > 0) { return true; } return false; } public async Task Export([FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 10, [FromQuery] string sortBy = "", [FromQuery] bool isAscending = true, [FromQuery] Dictionary filters = null) { var pagingParams = new PagingParams { PageNumber = pageNumber, PageSize = pageSize, SortBy = sortBy, IsAscending = isAscending, Filters = filters }; // 可以在这里构建表达式树过滤条件 Expression> filter = null; var pagedResult = await _repository.GetPagedAsync(null, pagingParams); return await ExportFile(pagedResult.Data, Guid.NewGuid().ToString() + ".xlsx"); } protected async Task ExportFile(ICollection dtos, string fileName) where T : class, new() { var excelExporter = HttpContext.RequestServices.GetRequiredService(); var res = await excelExporter.ExportAsByteArray(dtos); return new FileStreamResult(new MemoryStream(res), "application/octet-stream") { FileDownloadName = DateTime.Now.ToString("yyyyMMddHHmm") + "_" + fileName }; } } /// 导出 /// /// 第几页 /// 每页条数 /// 排序列 /// 是否升序 /// 查询条件 /// //private readonly IServiceProvider _serviceProvider; //public LogController(IServiceProvider serviceProvider) //{ // _serviceProvider = serviceProvider; //} //public async Task> GetLogs() //{ // var dbcontext= _serviceProvider.GetRequiredService(); // var connection=dbcontext.Database.GetDbConnection(); // connection.Query("select top 10 * from logs"); //} }