using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Yi.Framework.Infrastructure.Data.Entities; using Yi.Framework.Infrastructure.Data.Filters; namespace Yi.Framework.Infrastructure.Data { public static class DataFilterExtensions { public static IApplicationBuilder UseDataFiterServer(this IApplicationBuilder builder) { return builder.UseMiddleware(); } } public class DataFilterMiddleware { private readonly RequestDelegate _next; private readonly ILogger _logger; public DataFilterMiddleware(RequestDelegate next, ILoggerFactory loggerFactory) { _next = next; _logger = loggerFactory.CreateLogger(); } public async Task InvokeAsync(HttpContext context, IDataFilter dataFilter) { //添加默认的过滤器 dataFilter.AddFilter(u => u.IsDeleted == false); //dataFilter.AddFilter(u => u.TenantId == Guid.Empty); await _next(context); } } }