using Microsoft.EntityFrameworkCore; using Fengling.RiskControl.Domain.Aggregates.RiskRules; using Fengling.RiskControl.Domain.Repositories; namespace Fengling.RiskControl.Infrastructure.Repositories; public class RiskRuleRepository : IRiskRuleRepository { private readonly RiskControlDbContext _context; public RiskRuleRepository(RiskControlDbContext context) { _context = context; } public async Task GetByIdAsync(long id) { return await _context.RiskRules.FindAsync(id); } public async Task> GetActiveRulesAsync() { return await _context.RiskRules .Where(r => r.IsActive) .OrderByDescending(r => r.Priority) .ToListAsync(); } public async Task> GetRulesByTypeAsync(RiskRuleType type) { return await _context.RiskRules .Where(r => r.RuleType == type && r.IsActive) .ToListAsync(); } public async Task> GetRulesForEvaluationAsync(string entityType, string actionType) { return await _context.RiskRules .Where(r => r.IsActive) .ToListAsync(); } public async Task AddAsync(RiskRule rule) { await _context.RiskRules.AddAsync(rule); } public async Task UpdateAsync(RiskRule rule) { _context.RiskRules.Update(rule); await Task.CompletedTask; } public async Task DeleteAsync(RiskRule rule) { _context.RiskRules.Remove(rule); await Task.CompletedTask; } }